【问题标题】:Extract values from JSON string c#从 JSON 字符串 c# 中提取值
【发布时间】:2011-09-11 10:32:30
【问题描述】:

我使用 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]
]}"

“数据”对象内部是一个字符串和整数值数组。我只想将字符串值从数据数组中取出并放入一个列表中。我该怎么做?

【问题讨论】:

  • Parse JSON in C# 的可能重复项
  • 不确定这会是怎样的骗局,因为我有一个匿名 json 对象...
  • 这会出现在 Silverlight 中吗,正如您最近的其他问题所显示的那样?
  • 是的,但和其他一些一样,我没有意识到 Silverlight 会对这样的事情产生如此大的影响 - 我只是在 C# 中工作,你知道吗?

标签: c# silverlight json


【解决方案1】:

试试这个:

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

您可以在这里查看更多信息:

JavaScriptSerializer.Deserialize - how to change field names

【讨论】:

    【解决方案2】:

    使用类似的方法将其解析为字典 Newtonsoft。 反序列化后,按您想要的方式循环。

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

    【讨论】:

    • stackoverflow.com/questions/1927589/… 可能对你有帮助!!
    • 是的,我尝试只返回 json 字符串的数据部分,其中包含 Dictionary<string, int> results = JsonConvert.DeserializeObject<Dictionary<string, int>>(result); (或 KeyValuePair)之类的内容,但它只是说“无法将 JSON 数组反序列化为类型 'System.Collections.Generic .Dictionary`2[System.String,System.Int32]'.",我不知道该去哪里:(
    • 可能只是制作一个自定义对象的数组,其中包含字符串和整数作为其字段(只是一个想法)。
    • 我最终只是遍历数据对象并返回一个字符串数组,并使用 jObject 和 JArray 变成一个列表
    【解决方案3】:

    所以它没有被埋在 cmets 中:

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

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

    然后我使用了 JSON.Net/newtonsoft 库中的 JObject 和 JArray。最后,我遍历我的 JArray 以创建一个绑定到我的 ListBox ItemsSource 的 ObservableCollection。

    斯科特

    【讨论】:

      猜你喜欢
      • 2014-04-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多