首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >JSON字符串转换为JS对象

JSON字符串转换为JS对象
EN

Stack Overflow用户
提问于 2010-02-13 17:50:23
回答 4查看 160.4K关注 0票数 77

我正在使用JS对象来创建带有Google可视化的图形。我正在尝试设计数据源。首先,我在客户端创建了一个JS对象。

代码语言:javascript
复制
var JSONObject = {
  cols: [{
      id: 'date',
      label: 'Date',
      type: 'date'
    },
    {
      id: 'soldpencils',
      label: 'Sold Pencils',
      type: 'number'
    },
    {
      id: 'soldpens',
      label: 'Sold Pens',
      type: 'number'
    }
  ],
  rows: [{
      c: [{
        v: new Date(2008, 1, 1),
        f: '2/1/2008'
      }, {
        v: 30000
      }, {
        v: 40645
      }]
    },
    {
      c: [{
        v: new Date(2008, 1, 2),
        f: '2/2/2008'
      }, {
        v: 14045
      }, {
        v: 20374
      }]
    },
    {
      c: [{
        v: new Date(2008, 1, 3),
        f: '2/3/2008'
      }, {
        v: 55022
      }, {
        v: 50766
      }]
    }
  ]
};

var data = new google.visualization.DataTable(JSONObject, 0.5);

现在我需要动态获取数据。因此,我向返回JSON字符串的页面发送了一个AJAX请求:

代码语言:javascript
复制
 "cols: [{id: 'date', label: 'Date', type: 'date'},
{id: 'soldpencils', label: 'Sold Pencils', type: 'number'},
{id: 'soldpens', label: 'Sold Pens', type: 'number'}],
  rows: [{c:[{v: new Date(2008,1,1),f:'2/1/2008'},{v: 30000}, {v: 40645}]},
      {c:[{v: new Date(2008,1,2),f:'2/2/2008'},{v: 14045}, {v: 20374}]},
{c:[{v: new Date(2008,1,3),f:'2/3/2008'},{v: 55022}, {v: 50766}]}"

我将其保存到一个变量中:

代码语言:javascript
复制
var var1 = "cols: [{i ....... 66}]}"

并显示为

代码语言:javascript
复制
alert(var1);

现在,我的任务是从这个字符串创建一个JS对象。这不管用。当我使用JS对象时,一切都运行得很好,并且我能够获得所需的图形。现在,如果我尝试将AJAX请求中的相同字符串值放入n对象中,该对象将无法正确创建。请让我知道您的意见和任何更正或建议。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-02-13 17:58:34

一些现代浏览器支持将JSON解析为本机对象:

代码语言:javascript
复制
var var1 = '{"cols": [{"i" ....... 66}]}';
var result = JSON.parse(var1);

对于不支持json2.js的浏览器,您可以从json.org下载json2.js,以便安全地解析JSON对象。该脚本将检查本地JSON支持,如果不存在,则提供JSON全局对象。如果更快的原生对象可用,它将直接退出脚本,保持原样。但是,您必须提供有效的JSON,否则将抛出错误-您可以使用http://jslint.comhttp://jsonlint.com检查您的JSON的有效性。

票数 138
EN

Stack Overflow用户

发布于 2010-02-13 17:55:50

如果您信任字符串中的数据,则可以使用eval(jsonString),否则您将需要正确地解析它-请查看json.org中的一些代码示例。

票数 5
EN

Stack Overflow用户

发布于 2010-02-13 17:56:10

您可以使用JSON.org中的this library将字符串转换为JSON对象。

代码语言:javascript
复制
var var1_obj = JSON.parse(var1);

或者,您也可以使用jquery-json库。

代码语言:javascript
复制
var var1_obj = $.toJSON(var1);
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2257117

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档