合并两个JSONs php

时间:2019-06-26 16:49:54

标签: php json

我有2个不同的json,我需要在另一个内部放一个。

JSON 1

[{
    "id":"1",
    "texto":"Vamos newells 17471934",
    "fecha":"2019-06-24 12:09:12",
    "categoria":"1",
    "idpayment":"Reference_1561388952",
    "provincia":"1",
    "estado":"NO",
    "email":"newells@gmail.com"
}]

JSON 2

{
    "Texto": " VENDO O PERMUTO",
    "imageJob": {
        "pathConvertido": "ClasificadosPNG/0011311247.png",
        "convertido": true,
        "id": 5011
    },
    "rubroClasificado": {
        "CodigoRubro": 150,
        "id": 76
    }
}

我需要第一个中的第二个才能与javascript一起使用

我尝试了array_merge() php函数但没有得到结果

4 个答案:

答案 0 :(得分:0)

您可以将{'A_B_C_1': 'value_x'} {'A_B_C_2': 'value_x'} {'A_B_C_3': 'value_x'} {'A_B_C_1': 'value_y'} {'A_B_C_2': 'value_y'} {'A_B_C_3': 'value_y'} 与参数json_decode一起使用,以将JSON转换为数组,然后使用true使其成为单个数组

array_merge

您可以使用$j1 = '[{"id":"1","texto":"Vamos newells 17471934","fecha":"2019-06-24 12:09:12","categoria":"1","idpayment":"Reference_1561388952","provincia":"1","estado":"NO","email":"newells@gmail.com"}]'; $j1arr = json_decode($j1, true); $j2 = ' { "Texto": " VENDO O PERMUTO", "imageJob": { "pathConvertido": "ClasificadosPNG/0011311247.png", "convertido": true, "id": 5011 }, "rubroClasificado": { "CodigoRubro": 150, "id": 76 } }'; $j2arr = json_decode($j2, true); $r = array_merge($j1arr[0], $j2arr);

在javascript中使用合并数组
json_encode

https://3v4l.org/WKX1U

答案 1 :(得分:0)

以这种方式简单地完成操作,而无需任何额外的数组合并方法-

<?php
$json1 = json_decode('[{"id":"1","texto":"Vamos newells 17471934","fecha":"2019-06-24 12:09:12","categoria":"1","idpayment":"Reference_1561388952","provincia":"1","estado":"NO","email":"newells@gmail.com"}]',1);
$json2 = json_decode('{"Texto":" VENDO O PERMUTO","imageJob":{"pathConvertido":"ClasificadosPNG/0011311247.png","convertido":true,"id":5011},"rubroClasificado":{"CodigoRubro":150,"id":76}}',1);
$json1[] = $json2; // add second json to first json
print_r($json1);
echo json_encode($json1);
?>

工作演示: https://3v4l.org/qhsJq

答案 2 :(得分:0)

正如您所说,您想使用JavaScript处理结果数据,并且根据您的问题,您希望在第一个json中包含第二个json。你可以做这样的事情。 您将得到一个json作为最终结果。

$first = '[{
"id":"1",
"texto":"Vamos newells 17471934",
"fecha":"2019-06-24 12:09:12",
"categoria":"1",
"idpayment":"Reference_1561388952",
"provincia":"1",
"estado":"NO",
"email":"newells@gmail.com"
}]';

$first = str_replace(['[',']','}'], '', $first);

$second = '{
"Texto": " VENDO O PERMUTO",
"imageJob": {
    "pathConvertido": "ClasificadosPNG/0011311247.png",
    "convertido": true,
    "id": 5011
},
"rubroClasificado": {
    "CodigoRubro": 150,
    "id": 76
 }
}';

$second = preg_replace('/\{/', ',', $second,1);


print_r($first.$second);

结果是,您将在第一个json中得到一个有效的json,第二个json,您可以验证here

答案 3 :(得分:0)

因为JSON1是JSON对象的数组,而JSON2只是JSON对象。

除了您所说的'I need the second one inside the first one for use with javascript'。因此,您可以测试此代码https://3v4l.org/1HGNF/perf#output

请比较所有在记忆使用和计时方面的表现

$j1 = '[{
    "id":"1",
    "texto":"Vamos newells 17471934",
    "fecha":"2019-06-24 12:09:12",
    "categoria":"1",
    "idpayment":"Reference_1561388952",
    "provincia":"1",
    "estado":"NO",
    "email":"newells@gmail.com"
}]';
$j2 = '{
    "Texto": " VENDO O PERMUTO",
    "imageJob": {
        "pathConvertido": "ClasificadosPNG/0011311247.png",
        "convertido": true,
        "id": 5011
    },
    "rubroClasificado": {
        "CodigoRubro": 150,
        "id": 76
    }
}';
$j1 = json_decode($j1, true);
$j2 = json_decode($j2, true);
$j1[] = $j2;
var_dump(json_encode($j1));