我使用 WITHOUT_ARRAY_WRAPPER 从 MSSQL 生成了多行 JSON:
{
"fName":"John",
"lName":"Smith"
},
{
"fName":"Emma",
"lName":"Watson"
},
{
"fName":"Harry",
"lName":"Potter"
}
接下来在存储过程中,我正在构建响应:
select json_query(@data, '$') as data,
@status as status,
@responseMessage as message
FOR JSON PATH, WITHOUT_ARRAY_WRAPPER;
但是通过这种方式在数据中我只得到第一个元素:
{
"data":{
"fName":"John",
"lName":"Smith"
}
}
当我在不使用 WITHOUT_ARRAY_WRAPPER 的情况下提取第一个 JSON 中的数据时,它可以,但我的 .NET 应用程序出现异常,结果为空且 HTTP 500。
我的 .NET 代码:
response = await new SQLDataContext().StoredProcedureExecuteReaderAsync<SQLDataResult>("SP_name", parameters);
public class SQLDataResult
{
public SQLDataResult()
{
// Status = SQLDataResultStatus.Error;
status = -1;
message = "An error occured";
}
[JsonProperty("status")]
// public SQLDataResultStatus Status;
public int status;
[JsonProperty("message")]
public string message;
[JsonProperty("data")]
public dynamic data;
}