【问题标题】:JSON Parsing ErrorJSON解析错误
【发布时间】:2010-11-22 05:42:22
【问题描述】:

我有问题。 I have this JSON 由 Open Flash Chart php 库自动生成。问题是,OFC 报告 JSON Parse Error [Syntax Error] 而使用 http://www.jsonlint.com/ 的测试结果报告我的 JSON 很好。但是,w3c parser 也报错了:(

有什么帮助吗?

这是 JSON:

{
    "title": "Followers Trend",
    "elements": [
        {
            "type": "area_hollow",
            "fill-alpha": 0.35,
            "values": [

            ],
            "colour": "#5B56B6",
            "text": "Followers",
            "font-size": 12 
        } 
    ],
    "x_axis": {
        "colour": "#A2ACBA",
        "grid-colour": "#D7E4A3",
        "offset": false,
        "steps": 4,
        "labels": {
            "steps": 2,
            "rotate": "vertical",
            "colour": "#A2ACBA",
            "labels": [

            ] 
        } 
    },
    "x_legend": {
        "text": "Week Trend (2009-08-17 - 2009-08-24)",
        "style": "{font-size: 20px; color: #778877}" 
    },
    "y_axis": {
        "min": 0,
        "max": 150,
        "steps": 30 
    }
}

【问题讨论】:

  • 它在I have this JSON 链接后面。反正我这里再写一遍。

标签: json parsing open-flash-chart


【解决方案1】:

我在玩 JSON 时学到的一些东西是:

  • 如果您在各种 JSON 验证服务上验证了 JSON,并且结果是 GOOD。但是,当您无法 eval 它时,请尝试使用 () 包装您的 JSON => ({jsondata})

    var json = eval( "(" + jsonString + ")" );
    
  • 永远不要自己构建 JSON。这是通向失败的大门。始终使用官方或流行的 JSON 库(取决于您的语言)。例如:

  • 要显示和格式化 JSON 数据,您可以使用JSONViewer

【讨论】:

    【解决方案2】:

    我认为 w3c 解析器有问题,我什至无法让它解析:

    {
        "title" : "Followers Trend"
    }
    

    它给了我这个错误:

    Validation errors:
    
    lexer couldn't parse at "{
        "title" : "Followers Trend"
    }"
    

    【讨论】:

    • 如上所述,w3c 确实失败了。我不明白的是,OFC 报告也失败了,但 JSONLint 没有。我不知道我对json有什么问题。对我来说看起来不错:(
    【解决方案3】:

    http://json.bloople.net 帮助您可视化代码以查找和纠正错误。

    【讨论】:

      【解决方案4】:

      试试这段代码,JSON.parse() 方法无法处理位于 单引号作为右侧的值。如果你想处理 UTF-8字符码,就可以了。

      parseJSON = function() {
          var data = {};
          var reader = new FileReader();
          reader.onload = function() {
              try {
                  data = JSON.parse(reader.result.replace(/'/g, "\""));
                  console.log(data)
              } catch (ex) {
                  console.log('error' + ex);
              }
          };
          reader.readAsText(fileSelector_test[0].files[0], 'utf-8');
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-08-28
        • 2017-04-12
        相关资源
        最近更新 更多