【问题标题】:Parse JSON string into an array将 JSON 字符串解析为数组
【发布时间】:2012-07-12 21:42:32
【问题描述】:

我正在尝试从 JSON 解析字符串并将这些元素转换为 Javascript 中的数组。这是代码。

      var data = "{"fname":"Todd","lname":"James","cascade":"tjames","loc":"res","place":"home", "day0":"0,1,2,3,"}";
      var getDay = data.day0;
      var getDayArray = getDay.split(",");

本质上,我正在尝试获取day0,即0,1,2,3,并将其转换为结构为的数组

[0] = 0
[1] = 1
[2] = 2
[3] = 3

最好的方法是什么?

【问题讨论】:

  • var data = '{"...."}';data=JSON.parse(data);等?
  • 首先,您的对象标记无效。二、你试过什么?
  • 等等...你改变了你的代码,现在没有 JSON
  • 我不确定你在这里暗示什么。我正在尝试从 JSON 中取出 day0 元素并将数字放入数组中。
  • 对不起,那是我;起初我认为这是一个错字并试图纠正它,但后来我意识到 OP 实际上可能有非常糟糕的 JSON 代码。

标签: javascript json


【解决方案1】:

类似的东西。后面的逗号是故意的吗?

var getDayArray = JSON.parse(data).day0.split(",")

【讨论】:

  • 你错过了split()中的','
  • 废话,出于某种原因,我的大脑认为“,”是默认值
【解决方案2】:

大多数现代浏览器都支持JSON.parse()。你会这样使用它:

  var dataJSON = '{"fname":"Todd","lname":"James","cascade":"tjames","loc":"res","place":"home", "day0":"0,1,2,3"}'; // You need to remove the trailing comma
  var data = JSON.parse(dataJSON);
  var getDay = data.day0;
  var getDayArray = getDay.split(",");

但是,最好修改任何为 dataJSON 生成值的内容,以返回

  var dataJSON = '{"fname":"Todd","lname":"James","cascade":"tjames","loc":"res","place":"home", "day0":[0,1,2,3]}';

【讨论】:

    【解决方案3】:

    这是内置在大多数现代浏览器 JavaScript 引擎中的。根据您所针对的环境,您可以简单地执行以下操作:

    var data = JSON.parse(jsonString);
    day0 = data.day0.split(",");
    

    这很简单。如果您的目标环境无法访问内置 JSON 对象,您应该尝试this JSON project

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-23
      • 2018-06-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多