首页 新闻 会员 周边

使用C# 如何提取JSON里特定节点的数据。

1
悬赏园豆:10 [已解决问题] 解决于 2013-08-08 11:47

正在学习使用新浪的API接口,在用到statuses/repost_timeline接口的时候,返回的json格式大致如下:

{
    "reposts": [
        {   .....

             “user”:{

          .....

                          }

    "retweeted_status": {

            "user":{....}

              }

    },

    {

      重复上面的数据格式

    }]

}

我想取user节点里面的数据,而不是"retweeted_status"节点下面的user节点的数据。怎么取出来啊,大牛们。

lllLliNdAman的主页 lllLliNdAman | 初学一级 | 园豆:193
提问于:2013-08-08 10:09
< >
分享
最佳答案
0

用Json.NET可以轻松搞定:

var jObject = JObject.Parse(jsonStr);
Console.WriteLine(jObject["reposts"][0]["user"]);

相关博问:Json的序列化问题

收获园豆:10
dudu | 高人七级 |园豆:30943 | 2013-08-08 11:09

非常感谢!可以了。

lllLliNdAman | 园豆:193 (初学一级) | 2013-08-08 11:46

@Manofthecursed: 你也可以试试jObject.SelectToken("reposts[0].user").

shen110 | 园豆:158 (初学一级) | 2016-04-12 23:26

请问,怎样将一个json文件读取成JObject.Parse(jsonStr)中的jsonStr字符串?我用streamReader试了不行。

f_heaven | 园豆:200 (初学一级) | 2018-08-15 14:11
其他回答(2)
0

反序列化。

Launcher | 园豆:45045 (高人七级) | 2013-08-08 10:16

大牛能说的详细点吗,我从昨天下午想到现在了,脑子有点乱。。

支持(0) 反对(0) lllLliNdAman | 园豆:193 (初学一级) | 2013-08-08 10:28

@Manofthecursed: 

http://q.cnblogs.com/q/16775/

支持(0) 反对(0) Launcher | 园豆:45045 (高人七级) | 2013-08-08 10:33
0

首先,你的json数据格式不正确。

js获取方式:

var obj = {
                "reposts": [
        { "user": { name: "test" }, "retweeted_status": { "user": { name: "test1"}} },
        { "user": { name: "test" }, "retweeted_status": { "user": { name: "test1"}} }
    ]
            };
for(var i in obj.reposts){
alert(obj.reposts[i].user.name);
}

如果是后台,直接用第三方库(Json.Net,LitJson,FastJson)反序列化即可

幻天芒 | 园豆:37175 (高人七级) | 2013-08-08 10:38
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册