我要做的是以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"
}帮助别人吗?
发布于 2014-09-17 22:20:30
在我看来,JSON序列化程序似乎是在胡闹,因为它不知道如何正确序列化DataRow。这是第一和第二段代码的唯一区别。
如果您查看 class,您可以看到DataRow显示了许多属性(RowError、RowState和Table)。
为了解决你的问题,我建议两个选项中的一个:
DataTable并添加要序列化到它的DataRow,并对其调用JsonConvert.SerializeObject()。Store或其他类),并尝试序列化该对象。从我所读到的 documentation来看,这是可能的(类属性被正确地映射到JSON对象上)。告诉我是怎么回事!
发布于 2014-09-17 22:23:36
你可以用:
var行= dtbStoreInformation.Rows;
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);https://stackoverflow.com/questions/25901092
复制相似问题