【问题标题】:How to extract value from json in Javascript?如何在 Javascript 中从 json 中提取值?
【发布时间】:2018-01-02 13:18:16
【问题描述】:

我正在尝试从下面的 json 数组中读取第一个值

 var json = "[{\"First\",\"Second\"}]";

我如何首先从上面的 json 数组中获取值。

    var result = JObject.Parse(json);
   var result = JArray.Parse(json);

我尝试了上述方法,但都抛出异常。

【问题讨论】:

  • 向我们展示您尝试过的代码...
  • 什么异常?你是怎么尝试的?那是无效的 JSON,因为它是一个数组,它有一个对象应该有键值对,但它没有。
  • 还有例外。但从根本上说,当它是一个数组时,你试图将它解析为一个对象 - 所以使用JArray.Parse
  • 这看起来不像是有效的 json。如果你想要的只是一个包含两个字符串 first 和 second 的数组,请去掉 { }:"[\"First\",\"Second\"]"
  • 那么,您只想在 javascript 代码中从 json 中获取第一个值??对吗?

标签: javascript c# json


【解决方案1】:
var json = "[{\"First\",\"Second\"}]";

dynamic result = JsonConvert.DeserializeObject(json);

当您使用 jObject 时,它看起来像 c# 代码。您可以将 json 读取为给定的代码。

【讨论】:

    【解决方案2】:

    Newtonsoft.JSON 是这种情况的一个很好的解决方案。此外,Newtonsof.JSON 比 JavaScriptSerializerDataContractJsonSerializer 等其他方法更快。

    在此示例中,您可以执行以下操作:

    var jsonData = JObject.Parse("your json data here");
    

    然后您可以将 jsonData 转换为 JArray 并且可以使用 for 循环在每次迭代时获取数据。另外,我想补充一点。

    使用动态对象并使用 Newtonsoft 序列化是一个不错的选择。

    【讨论】:

      【解决方案3】:

      JSON 不是列表格式,而是像键值数据结构一样工作。在您的浏览器控制台中尝试这个小 Javascript,以了解它应该如何工作。

      obj = JSON.parse("{\"first\":\"First value\", \"second\":\"Second Value, maybe some more text?\"}");
      console.log(obj.first);
      console.log(obj.second);
      

      打印:

      First value
      Second Value, maybe some more text?
      

      【讨论】:

        猜你喜欢
        • 2021-05-08
        • 1970-01-01
        • 2011-11-12
        • 1970-01-01
        • 2017-08-03
        • 2021-03-01
        • 1970-01-01
        • 1970-01-01
        • 2018-04-20
        相关资源
        最近更新 更多