如何在单个json对象

时间:2016-05-18 14:55:06

标签: java php html

这些是json的两个对象:    [{“dob”:“0000-00-00”,         “令牌”:“tokenenter”         “脸谱”:“enterfb”         “图片网址”:“urlinserted”         “验证”: “326098617”     },     {
        “成功”: “1”     }]

我想创建这样的东西:

[{ "dob":"0000-00-00",
    "token":"tokenenter",
    "facebook":"enterfb",
    "image_url":"urlinserted",
    "verification":"326098617",   
    "success":"1"
}]

2 个答案:

答案 0 :(得分:0)

我假设你正在使用php

您可以这样做:

$arrayOfArrays = json_decode($json);
$mergedArray = call_user_func_array('array_merge', $arrayOfArrays);

如果您知道确切的项目数,则可以执行以下操作:

$mergedArray = array_merge($arrayOfArrays[0], $arrayOfArrays[1], $arrayOfArrays[2]);

PHP >= 5.6中你可以这样做:

$mergedArray = array_merge(...$arrayOfArrays);

回到你的例子:

json_encode([$mergedArray]);

要保持键的顺序,您可以使用这个非常基本的功能(必须调整以处理多维数组):

function simple_array_merge(array $array1, array $array2) {
    $arrays = func_get_args();
    $mergedArray = [];

    foreach ($arrays as $array) {
        foreach ($array as $key => $value) {
            $mergedArray[$key] = $value;
        }
    }

    require $mergedArray;
}

现在做:

$arrayOfArrays = json_decode($json);
$mergedArray = call_user_func_array('simple_array_merge', $arrayOfArrays);

答案 1 :(得分:0)

所以,这里你有两个对象在一个数组中,简单的解决方案就是将第一个对象中的第二个对象与一个简单的效果合并。 比如下面的代码:

a=[{ 
 "dob":"0000-00-00",
 "token":"tokenenter", 
 "facebook":"enterfb", 
 "image_url":"urlinserted",
 "verification":"326098617" },
 {
     "success":"1"
 }
 ];
a[0].success=a[1].success

就像你将获得一个组合两个对象的对象。如果你想删除第二个,你可以使用:

delete a[1];

或者

a[1]=undefined
祝你好运。