从JSON字符串c#中提取值

时间:2011-09-11 10:32:31

标签: c# silverlight json

我使用了JSON.stringify 我有以下json字符串从javascript返回到C#函数:

"{
    \"code\":\"OK\",
    \"data\":[
        [\"adidas\",167],
        [\"adidas men's summer run basketball shoe\",35],
        [\"adidas shoes\",12],
        [\"adidas stan smith men\",9],
        [\"adidas golf shoes\",9],
        [\"adidas clothing\",9],
        [\"adidas zxz nylon man shoes\",8],
        [\"adidas uk\",8],
        [\"adidas predator\",8],
        [\"adidas perfume\",8],
        [\"adidas basketball shoes\",8],
        [\"puma and adidas shoes\",7],
        [\"mi adidas\",7],
        [\"mens discontinued adidas sandals\",7],
        [\"climate cool mens discontinued adidas sandals\",7],
        [\"china olympic adidas\",7],
        [\"china olimpic adidas\",7],
        [\"chaussure de foot adidas\",7],
        [\"alex white adidas\",7],
        [\"adidas superstars\",7]
]}"

'data'对象内部有一串字符串& int值。我想从数据数组中获取字符串值并进入List。我该怎么做?

3 个答案:

答案 0 :(得分:2)

试试这个:

JavaScriptSerializer serializer = new JavaScriptSerializer();
var jsonObject= serializer.Deserialize(json_object);

您可以在此处查看更多信息:

JavaScriptSerializer.Deserialize - how to change field names

答案 1 :(得分:1)

使用类似的东西将其解析为字典 Newtonsoft。 一旦消毒,就按照你想要的方式循环。

在上述问题中的评论之后,字典可能必须由允许重复的数据结构替换。

答案 2 :(得分:0)

所以它没有被埋没在评论中:

在我的JS中,我最终只是循环遍历我的数据对象:

for(i=0;i<r['data'].length,i++) {
    newObject[i] = r['data'][i][0];
}
return JSON.stringify(newObject);

然后我使用了JObject&amp;来自JSON.Net/newtonsoft库的JArray。最后,我通过我的JArray循环创建了一个ObservableCollection,它绑定到了我的ListBox ItemsSource。

斯科特