Jquery $.parseJASON()的作用是什么?

Jquery $.parseJASON()的作用是什么?,jquery,json,Jquery,Json,我刚刚开始学习如何使用JSON,这可能是一个noob问题:?为什么我必须解析JSON 我有一个来自php数组的JSON对象(我使用了它JSON\u encode),它看起来像这样: var jason = { "book1": { "price": 10, "weight": 30 }, "book2": { "price": 40, "weight": 60 } }; var jason = '{"book1":{"price":10,"we

我刚刚开始学习如何使用JSON,这可能是一个noob问题:?为什么我必须解析JSON

我有一个来自php数组的JSON对象(我使用了它
JSON\u encode
),它看起来像这样:

var jason = 
{
  "book1": {
    "price": 10,
    "weight": 30
  },
  "book2": {
    "price": 40,
    "weight": 60
  }
};
var jason = '{"book1":{"price":10,"weight":30},"book2":{"price":40,"weight":60}}';
我可以使用
$循环遍历它。each()
函数,那么我为什么要解析它呢?应用解析后,我不能再使用
$.each()
,不知道为什么。我不明白为什么我不能使用这样的东西:
控制台(jason.book1[1])

我知道jquery中的描述是:

Description:获取格式良好的JSON字符串并返回结果JavaScript对象


但我真的不明白。不管怎样,任何帮助都将被感激

JSON是数据的一种表示形式。当它来自HTML或XHR时,它总是一个字符串(只是一个字符序列)。除了构成它的单个字符外,它没有任何意义。将属性指向其值的
与JSON中可能出现在字符串中的
没有什么不同的含义

您必须对其进行解析以获得可用的版本,也就是说,将字符串转换为您语言中的本机数据结构。这会将字符串解析为其组件。在JavaScript中,它被转换成对象、数组、布尔值、空值、数字等。在其他语言中,有等效的类型和结构。

以上是JavaScript中的一个对象(从技术上讲不是JSON,因为JSON只是表示对象的符号,而不是数据结构。不过说这一点很迂腐):

但是,假设您有这样一个字符串:

var jason = 
{
  "book1": {
    "price": 10,
    "weight": 30
  },
  "book2": {
    "price": 40,
    "weight": 60
  }
};
var jason = '{"book1":{"price":10,"weight":30},"book2":{"price":40,"weight":60}}';
你可以通过多种方式获得该字符串,但假设你拥有它

$.parseJSON(jason)
会将该字符串转换为上面的对象


看到了吗

您拥有的是一个javascript对象,而不是JSON。恰好javascript对象与JSON字符串共享相似的语法。正如其他人所说,这是一个javascript对象,而不是JSON。把JSON想象成XML,通常在使用它之前也会对它进行解析。如果使用PHP并将JSON编码的数组注入JS,那么只要利用JSON在被解释为JS时是有效的JS这一事实即可。这或多或少是巧合。谢谢你的回答。但是,即使在解析它之后,我仍然不能使用
jsonparsed.book1[0]
@mat book1没有0属性。试试书1.价格