【问题标题】:multidimensional array to json object php多维数组到json对象php
【发布时间】:2016-08-10 09:13:34
【问题描述】:

我尝试使用 json_encode,但结果类似于数组,不是 json 格式,任何人都可以帮助我形成 json 对象。我从一个 url 获取数组,我需要将它直接转换为 json

$c = curl_init();
curl_setopt($c, CURLOPT_URL, $Url);
curl_setopt($c, CURLOPT_POST, 1);
curl_setopt($c, CURLOPT_POSTFIELDS, $qs);
curl_setopt($c, CURLOPT_CONNECTTIMEOUT, 30);
curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($c, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($c, CURLOPT_SSL_VERIFYPEER, 0);
$array = curl_exec($c);

这是我打印 url 得到的数组

Array(
[status] => 1
[msg] => 2 vo settled on 2015-05-07
[Vo_details] => Array
    (
        [0] => Array
            (

                [void] => 12sd
                [vdate] => 2015-05-07 13:04:11
                [mode] => DD
                [amount] => 10.00
                [bank_name] => DD
                [issuing_bank] => abc
            )

        [1] => Array
            (

                [void] => 12a
                [vdate] => 2015-05-07 15:10:18
                [mode] => DD
                [amount] => 10.00
                [bank_name] => EE
                [issuing_bank] => abc
            )

    ))

如果我使用 json_encode 我会得到类似的东西

Array\n(\n [status] => 1\n [msg] => 2 vo 定于 2015-05-07\n [Vo_details] => Array\n (\n [0] => Array \n (\n [void] => 12sd\n [vdate] => 2015-05-07 13:04:11\n [mode] => DD\n [amount] => 10.00\n [bank_name] = > DD\n [issueing_bank] => abc\n )\n\n [1] => 数组\n (\n [void] => 12a\n [void] => 2015-05-07 15:10: 18\n [mode] => DD\n [amount] => 10.00\n [bank_name] => EE\n [issuing_bank] => abc\n )\n )\n\n)\n "

【问题讨论】:

  • 为什么不只是json_encode($array)?
  • 是json_encode 还是java encode?
  • 试试json_encode($array);。什么是 java 编码?
  • 对不起,我使用了 json 编码

标签: php arrays json multidimensional-array


【解决方案1】:
$json_var = json_encode($your_array);

【讨论】:

    【解决方案2】:

    请试试这个:

    $array = Array(
    'status' => 1,
    'msg' => '2 vo settled on 2015-05-07',
    'Vo_details' => Array
        (
            '0' => Array
                (
    
                    'void' => '12sd',
                    'vdate' => '2015-05-07 13:04:11',
                    'mode' => 'DD',
                    'amount' => '10.00',
                    'bank_name' => 'DD',
                    'issuing_bank' => 'abc'
                ),
    
            '1' => Array
                (
    
                    'void' => '12a',
                    'vdate' => '2015-05-07 15:10:18',
                    'mode' => 'DD',
                    'amount' => '10.00',
                    'bank_name' => 'EE',
                    'issuing_bank' => 'abc'
                )
    
        ),
        );
    
    echo json_encode($array , JSON_FORCE_OBJECT);
    

    输出

    {
       "status":1,
       "msg":"2 vo settled on 2015-05-07",
       "Vo_details":{
          "0":{
             "void":"12sd",
             "vdate":"2015-05-07 13:04:11",
             "mode":"DD",
             "amount":"10.00",
             "bank_name":"DD",
             "issuing_bank":"abc"
          },
          "1":{
             "void":"12a",
             "vdate":"2015-05-07 15:10:18",
             "mode":"DD",
             "amount":"10.00",
             "bank_name":"EE",
             "issuing_bank":"abc"
          }
       }
    }
    

    【讨论】:

    • 我还是无法将其转换为 json 字符串
    • @sano 我将您的数组转换为 json 字符串请看我的回答我得到了这个。有什么问题告诉我
    • 如果你以表格形式给出数组,我也得到相同的答案,但我从 url 获取值,它提供了我在 qn 中给出的值,你能做任何事情吗
    • @sano 我看不懂请详细解释
    • 我从 url 获取数组值。我需要将数组转换为 json 字符串。如果我使用 json_encode 我得到的东西不是 json 字符串
    【解决方案3】:

    该数组看起来像是 print_r 函数的结果。
    print_r 输出没有解析器。创建该代码的人必须将print_r 更改为echo json_encode()。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-10-07
      • 2018-12-18
      • 2012-08-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-18
      • 1970-01-01
      相关资源
      最近更新 更多