如何将多维数组转换为JSON对象

4
我是一名有用的助手,可以为您翻译文本。
我遇到了一个与数组转换为JSON相关的问题。我有一个数组,想将其转换为JSON对象,期望输出如下,请帮忙解决。
PHP数组
    Array
(
    [0] => Array
        (
            [application_id] => 132
            [application_status] => SUBMITTED
            [reference_number] => 
            [salutation] => 
            [first_name] => 
            [middle_name] => 
            [last_name] => 
            [mother_name] => 


        )

    [1] => Array
        (
            [application_id] => 148
            [application_status] => SUBMITTED
            [reference_number] => 
            [salutation] => 
            [first_name] => 
            [middle_name] => 
            [last_name] => 
            [mother_name] => 


        )

    [2] => Array
        (
            [application_id] => 154
            [application_status] => SUBMITTED
            [reference_number] => 
            [salutation] => 
            [first_name] => 
            [middle_name] => 
            [last_name] => 
            [mother_name] => 


        )

    [3] => Array
        (
            [application_id] => 182
            [application_status] => SUBMITTED
            [reference_number] => 
            [salutation] => 
            [first_name] => 
            [middle_name] => 
            [last_name] => 
            [mother_name] => 


        )

    [4] => Array
        (
            [application_id] => 186
            [application_status] => SUBMITTED
            [reference_number] => 
            [salutation] => 
            [first_name] => 
            [middle_name] => 
            [last_name] => 
            [mother_name] => 



        )

)

将上述数组转换为如下的JSON对象:

[
        {
            "application_id": "1",
            "application_status": "0",
            "reference_number": "/index",
            "salutation": "index",
            "first_name": "Index",
            "middle_name": "Home",
            "last_name": "1",

        },
        {
            "application_id": "1",
            "application_status": "0",
            "reference_number": "/index",
            "salutation": "index",
            "first_name": "Index",
            "middle_name": "Home",
            "last_name": "1",

        },
        {
            "application_id": "1",
            "application_status": "0",
            "reference_number": "/index",
            "salutation": "index",
            "first_name": "Index",
            "middle_name": "Home",
            "last_name": "1",

        },
        {
            "application_id": "1",
            "application_status": "0",
            "reference_number": "/index",
            "salutation": "index",
            "first_name": "Index",
            "middle_name": "Home",
            "last_name": "1",

        },
        {
            "application_id": "1",
            "application_status": "0",
            "reference_number": "/index",
            "salutation": "index",
            "first_name": "Index",
            "middle_name": "Home",
            "last_name": "1",

        },

]  

4
json_encode 是一个 PHP 函数,用于将 PHP 数据结构转换为 JSON 字符串。 - Andrei
你真的想在一个来自无处的JSON对象中拥有一些重复项吗?或者这只是一个打字错误!! - someOne
不,这只是一个打字错误,每个键都有不同的值。@某人 - codex
3个回答

4

你想要的输出表明它是一个对象数组。只需循环遍历它们,并将每个子对象转换为json字符串,再解码以获取对象:

foreach($array as $k =>$a){
    $array[$k] = json_decode(json_encode($a));
}

如果你想要一个JSON字符串数组,那么不需要使用json_decode函数:
foreach($array as $k =>$a){
    $array[$k] = json_encode($a);
}

这对我有用,谢谢啊。 - codex

0
你可以直接使用 json_encode 来解决这个问题吗? 这将会把传递的参数转换成 JSON 对象。

不使用json_encode时,数据会像这样: { "0": { "application_id": "132", "application_status": "SUBMITTED", "reference_number": null, "salutation": null, } "1":{ "application_id": "134", "application_status": "SUBMITTED", "reference_number": null, "salutation": null, } - codex

-1

只需使用json_encode()函数

<?php    
$array = Array
(
    "0" => Array
        (
            "application_id" => "132",
            "application_status" => "SUBMITTED",
            "reference_number" => "",
            "salutation" => "",
            "first_name" => "",
            "middle_name" => "",
            "last_name" => "",
            "mother_name" => ""    
        ),    
    "1" => Array
        (
            "application_id" => "148",
            "application_status" => "SUBMITTED",
            "reference_number" => "",
            "salutation" => "",
            "first_name" => "",
            "middle_name" => "",
            "last_name" => "",
            "mother_name" => ""    
        ),    
    "2" => Array
        (
            "application_id" => "154",
            "application_status" => "SUBMITTED",
            "reference_number" => "",
            "salutation" => "",
            "first_name" => "",
            "middle_name" => "",
            "last_name" => "",
            "mother_name" => ""    
        ),    
    "3" => Array
        (
            "application_id" => "182",
            "application_status" => "SUBMITTED",
            "reference_number" => "",
            "salutation" => "",
            "first_name" => "",
            "middle_name" => "",
            "last_name" => "",
            "mother_name" => ""    
        ),    
    "4" => Array
        (
            "application_id" => "186",
            "application_status" => "SUBMITTED",
            "reference_number" => "",
            "salutation" => "",
            "first_name" => "",
            "middle_name" => "",
            "last_name" => "",
            "mother_name" => ""    
        )    
);


$json = json_encode($array);

print_r($json);

?>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接