【问题标题】:How $.parseJSON() parses an array?$.parseJSON() 如何解析数组?
【发布时间】:2016-10-13 13:42:04
【问题描述】:

我从test.php中的mysql查询得到一个数组

$rows =Array ( [0] => Array ( [name] => nikhil ) [1] => Array ( [name] => akhil ))

我把它转换成json格式的字符串并回显它

$jsonstring = json_encode($rows);
echo $jsonstring;

输出:

[{"name":"nikhil"},{"name":"akhil"}]

我知道这仍然不是 json 格式,但它是一个数组(json)

但现在我可以在jquery.php 中使用$.parseJSON

 $.post("/test.php",function(r){var jsonobject = $.parseJSON(r); 
    for(var i=0;jsonobject[i];i++){
  $("#userslist").append("<br>" + jsonobject[i].name);}

它会正确解析它,我也可以访问这个json对象,但是我们知道

$.parseJSON() 仅将格式良好的 json 字符串转换为对象。 http://api.jquery.com/jquery.parsejson/

$.parseJSON():采用格式良好的 JSON 字符串并返回结果 JavaScript 值。

那么$.parseJSON() 是如何解析数组的呢?有什么想法吗?

【问题讨论】:

  • 那个“输出”数组 JSON。
  • 这是有效的 JSON 格式,因为它包含数组:json.org
  • 它不是一个json,它是一个数组,一个合适的json应该是{"users" :[{"name":"nikhil"},{"name":"akhil"}]}
  • @beginner 不,这是不正确的。数组是一个非常好的 JSON 值。
  • @beginner 关于 JSON 的假设是不正确的。即使是只包含字符串文字的 JSON 结构也是有效的 JSON。

标签: javascript php jquery arrays json


【解决方案1】:

JSON 值可以是:

  • 一个数字;
  • 一个字符串;
  • nulltruefalse
  • JSON 值数组;
  • 由字符串属性名称和 JSON 值组成的对象。

所以

[{"name":"nikhil"},{"name":"akhil"}]

是一个非常好的 JSON 值。它是一个包含两个值的数组,每个值都是具有单个属性的对象,该属性具有一个字符串值。

【讨论】:

  • 你说的JSON值,你说的json值是什么意思,我认为{"users" :[{"name":"nikhil"},{"name":"akhil"}]}JSON值是一个数组,没关系
  • @beginner 不,这根本不正确。数组绝对是一个有效的 JSON 值,JSON.parse() 能够解析它应该是您需要的所有证据。
  • 谢谢,我在某处读到 Array 不是 json ,而 json 应该只采用 {"name":"value"} 格式。我很convenced。很高兴知道我的假设是错误的
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-11-02
  • 2013-12-27
  • 2015-07-04
  • 2017-08-27
  • 1970-01-01
  • 2017-11-09
相关资源
最近更新 更多