无法从JSON解析数据

时间:2016-03-22 21:36:54

标签: javascript json

我正在尝试创建一个JSON并用一些数据填充它。数据有点复杂,所以我想拥有" title"," name"和"价值"。

我的问题是我无法从我创建的JSON中获取内容并获得" Uncaught SyntaxError:Unexpected token o"错误信息。但是,如果我只是将json变量传递给console.log(),我可以看到变量中包含的所有对象。

请参阅以下代码:

JSON

var json = [
    {"title":"rice",
        "value":{
            "carb": 44.5,
            "fat": 0.1,
            "cal": 205,
            "prot": 4.3
        }
    },
    {"title":"buckwheat",
        "value":{
            "carb": 20,
            "fat": 1,
            "cal": 92,
            "prot": 3
        }
    },
    {"title":"potato",
        "value":{
            "carb": 50.5,
            "fat": 0.5,
            "cal": 225,
            "prot": 5.9
        },
    }
]  

JS

var obj = JSON.parse(json);
console.log(obj[0].title);

3 个答案:

答案 0 :(得分:1)

也许我不明白你的问题但是

JSON.parse()

当第一个参数获取一些String,文本值时,转换并将其作为JSON对象返回。由于你有一个 - 你可以用你的数据填充它。

答案 1 :(得分:0)

您的json数据无效。

Valid Example

您可以在Chrome或Mozilla中按f12并查看控制台。您可以找到JS代码的错误。

[
  {
    "title": "rice",
    "value": {
      "carb": 20,
      "fat": 1,
      "cal": 92,
      "prot": 3
    }
  },
  {
    "title": "buckwheat",
    "value": {
      "carb": 20,
      "fat": 1,
      "cal": 92,
      "prot": 3
    }
  },
  {
    "title": "potato",
    "value": {
      "carb": 50.5,
      "fat": 0.5,
      "cal": 225,
      "prot": 5.9
    }
  }
]

答案 2 :(得分:0)

你的var" json"已经是一个javascript对象。只需添加一个分号并修复一个错误("prot": 5.9}之后的逗号):

var obj = [
    {"title":"rice",
        "value":{
            "carb": 44.5,
            "fat": 0.1,
            "cal": 205,
            "prot": 4.3
        }
    },
    {"title":"buckwheat",
        "value":{
            "carb": 20,
            "fat": 1,
            "cal": 92,
            "prot": 3
        }
    },
    {"title":"potato",
        "value":{
            "carb": 50.5,
            "fat": 0.5,
            "cal": 225,
            "prot": 5.9
        }
    } ];

您只需使用以下内容获取值:

console.log(obj[0].title);

如果要解析json,请以字符串格式保存数据。