首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >以JSON格式打印数组的第一个索引

以JSON格式打印数组的第一个索引
EN

Stack Overflow用户
提问于 2014-09-17 22:04:11
回答 2查看 239关注 0票数 0

我要做的是以JSON格式打印数组的第一个索引。

密码如下:

代码语言:javascript
运行
复制
     storeInformation = myStoreInfoTable;
     strResponseOutput = JsonConvert.SerializeObject(storeInformation);

以下是研究结果:

代码语言:javascript
运行
复制
    [
        {
            "distance": 0,
            "descr": "Toronto",
            "address": "1300 Castlefield Avenue",
            "city": "Toronto"
        },
        {
            "distance": 7.1121883392,
            "descr": "Etobicoke - North",
            "address": "Resources Road",
            "city": "Etobicoke"
        }
    ]

为了得到第一个索引,我想做的是:

代码语言:javascript
运行
复制
    storeInformationRow = dtbStoreInformation.Rows[0];
    strResponseOutput = JsonConvert.SerializeObject(storeInformationRow);

我得到的是:

代码语言:javascript
运行
复制
   {
        "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"
            }
        ]
    }

我想要的结果是

代码语言:javascript
运行
复制
            {
                 "distance": 0.0000000000,
                 "descr": "Toronto",
                 "address": "1300 Castlefield Avenue",
                 "city": "Toronto"
            }

帮助别人吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-09-17 22:20:30

在我看来,JSON序列化程序似乎是在胡闹,因为它不知道如何正确序列化DataRow。这是第一和第二段代码的唯一区别。

如果您查看 class,您可以看到DataRow显示了许多属性(RowErrorRowStateTable)。

为了解决你的问题,我建议两个选项中的一个:

  1. 创建一个新的DataTable并添加要序列化到它的DataRow,并对其调用JsonConvert.SerializeObject()
  2. 将列(距离、下降、地址和城市)映射到另一个类(Store或其他类),并尝试序列化该对象。从我所读到的 documentation来看,这是可能的(类属性被正确地映射到JSON对象上)。

告诉我是怎么回事!

票数 0
EN

Stack Overflow用户

发布于 2014-09-17 22:23:36

你可以用:

var行= dtbStoreInformation.Rows;

代码语言:javascript
运行
复制
string strResponseOutput = new {
                          distance = row[0].ToString(), 
                          descr= row[1].ToString(), 
                          address = row[2].ToString(),
                          city = row[2].ToString()}.ToJson(); 

不要忘记名称空间ServiceStack.Text的包含

还可以创建一个匿名对象。

代码语言:javascript
运行
复制
var obj = jsonString = new {
                              distance = row[0].ToString(), 
                              descr= row[1].ToString(), 
                              address = row[2].ToString(),
                              city = row[2].ToString()}

strResponseOutput = JsonConvert.SerializeObject(obj);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25901092

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档