我有这样的json:
"{'total': 1, 'product_name': 'Cup'}"
在JSON.parse()
之后我的结果如下:
a = {'total': 1, 'product_name': 'Cup'}
如果我访问a.total
我得到了未定义。如果我在浏览器控制台中复制这一切,它可以正常工作,但不能在我的应用上工作。怎么了?
代码:
data = "{'total': '1', 'product_name': 'Cup'}";
parsedData = JSON.parse(data);
prod_name = parsedData.product_name;
答案 0 :(得分:1)
"{'total': 1, 'product_name': 'Cup'}"
是有效的JSON - 它是一个值为{'total': 1, 'product_name': 'Cup'}
的单个字符串(即它看起来像一个对象,但不是一个!)。
相反,您需要将值{"total": 1, "product_name": "Cup"}
的字符串传递给JSON.parse
(即大括号外没有引号,字符串没有双引号)。
如果你在JavaScript中这样做,它会是这样的:
data = "{\"total\": 1, \"product_name\": \"Cup\"}";
parsed = JSON.parse(data);
如您所见,您需要转义引号: - )
答案 1 :(得分:0)
您的JSON无效。必须使用"
而非'
引用JSON字符串。
这样:
parsedData = {'total': 1, 'product_name': 'Cup'}
console.log(parsedData) {'total': 1, 'product_name': 'Cup'} console.log(typeof(parsedData)) string
如果是这种情况,那么您的JSON是有效的,但它只是一个包含单个字符串的JSON文本。
摆脱JSON周围的"
,并将其中的'
更改为"
。