以JSON格式打印出数组的第一个索引
本文关键字:第一个 索引 数组 JSON 格式 式打印 | 更新日期: 2023-09-27 18:22:12
我要做的是以JSON格式打印出数组的第一个索引。
代码:
storeInformation = myStoreInfoTable;
strResponseOutput = JsonConvert.SerializeObject(storeInformation);
以下是结果:
[
{
"distance": 0,
"descr": "Toronto",
"address": "1300 Castlefield Avenue",
"city": "Toronto"
},
{
"distance": 7.1121883392,
"descr": "Etobicoke - North",
"address": "Resources Road",
"city": "Etobicoke"
}
]
我试图得到第一个索引的是:
storeInformationRow = dtbStoreInformation.Rows[0];
strResponseOutput = JsonConvert.SerializeObject(storeInformationRow);
我得到的是:
{
"RowError": "",
"RowState": 2,
"Table": [
{
"distance": 0.0000000000,
"descr": "Toronto",
"address": "1300 Castlefield Avenue",
"city": "Toronto"
},
{
"distance": 7.1121883392,
"descr": "Etobicoke - North",
"address": "Resources Road",
"city": "Etobicoke"
}
]
}
我想要的结果只是
{
"distance": 0.0000000000,
"descr": "Toronto",
"address": "1300 Castlefield Avenue",
"city": "Toronto"
}
帮谁?
在我看来,JSON序列化程序出了问题,因为它不知道如何正确地序列化DataRow
。这是第一段代码和第二段代码之间的唯一区别。
如果查看DataRow
类的MSDN文档,您可以看到DataRow
具有显示的属性(RowError
、RowState
和Table
)以及其他许多属性。
为了解决你的问题,我建议两个选项之一:
-
创建一个新的
DataTable
,并将要序列化的DataRow
添加到其中,然后调用JsonConvert.SerializeObject()
。 -
将列(distance、descr、address&city)映射到另一个类(
Store
或其他什么),并尝试序列化该对象。根据我在JsonConvert
文档中读到的内容,这是可能的(类属性被正确映射到JSON对象上)。
让我知道进展如何!
您只需使用:
var row=dtbStoreInformation.Rows[0];
string strResponseOutput = new {
distance = row[0].ToString(),
descr= row[1].ToString(),
address = row[2].ToString(),
city = row[2].ToString()}.ToJson();
不要忘记包含名称空间ServiceStack.Text
你也可以创建一个匿名对象
var obj = jsonString = new {
distance = row[0].ToString(),
descr= row[1].ToString(),
address = row[2].ToString(),
city = row[2].ToString()}
strResponseOutput = JsonConvert.SerializeObject(obj);