【问题标题】:How can I parse json array string to array on php如何在php上将json数组字符串解析为数组
【发布时间】:2014-04-17 21:14:38
【问题描述】:

如何在 php 上将 json 数组字符串解析为数组

'[{"a": "1", "b": "2"}, {"a": "3"}]'

似乎json_decode 只允许解析对象而不是数组。在使用json_decode之前是否应该手动解析为数组?


似乎字符串有问题。我得到一个带有 json 的变量,如果我输出它,看起来 json 是有效的

echo($jsonvar); //result [{"title":"Home","id":"/","url":"/"}]

但是当我尝试从变量中解析字符串时,即使字符串被修剪,结果也没有

echo('[{"title":"Home","id":"/","url":"/"}]', true); //nice parsed array
echo($jsonvar, true); //nothing
echo(trim($jsonvar, " \t\n\r\0\x0B"), true); //nothing

【问题讨论】:

  • 这怎么得了两票?如果实际阅读了文档,那么这个问题将永远不会被问到。来自文档:When TRUE, returned objects will be converted into associative arrays.`
  • 信不信由你,json_decode() 实际上可以解码 JSON;任何类型的有效 JSON。我不知道你是如何得出不同的结论的。
  • 问题已经用下面的代码json_decode(html_entity_decode($jsonvar));解决了,抱歉这个愚蠢的问题,因为答案无法删除。我认为原因在数组中。

标签: php json parsing


【解决方案1】:

true 作为第二个参数传递给json_decode() 以将json 字符串解析为数组。

$json='[{"a": "1", "b": "2"}, {"a": "3"}]';
$arr= json_decode($json,true); 
print_r($arr);

【讨论】:

    【解决方案2】:

    您可以使用json_decode()中的true标志将json放入数组

    <?php
    $str = '[{"a": "1", "b": "2"}, {"a": "3"}]';
    $arr=json_decode($str,true);
    print_r($arr);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多