使用php从有效的JSON数组创建一个对象

时间:2014-01-06 02:22:11

标签: php arrays json

我知道我的JSON是有效的,我想要将所有KEY从数组中拉出来并将它们放在一个对象中。但是,似乎我可以访问一个对象Key或Value,整个数组或一个键值对。我还没弄清楚如何解析出所有键或数组中的所有值。

这是我尝试过的:

print_r($ json_obj)产生:

Array ( [0] => Array ( [0] => uploads/featured/doublewm-4097.jpg [1] => featured ) [1] => Array ( [0] => uploads/featured/moon-5469.jpg [1] => featured ) )

print_r($ json_obj [0] [1])产生:

featured

print_r($ json_obj [1] [0])产生:

uploads/featured/moon-5469.jpg

print_r($ json_obj [1] [1])yeilds:

featured

print_r($ json_obj [0] [0])产生:

uploads/featured/doublewm-4097.jpg

PHP代码:

<?php
        $resultSet = '[["uploads/featured/doublewm-4097.jpg","featured"],
          ["uploads/featured/moon-5469.jpg","featured"]]';
        $json_obj = json_decode($resultSet);
        // print_r($json_obj);
        print_r($json_obj[0][1]);

?>

JSON根据JSONLint验证

[
    [
        "uploads/featured/doublewm-4097.jpg",
        "featured"
    ],
    [
        "uploads/featured/moon-5469.jpg",
        "featured"
    ]
]

我想最终得到一个带有json_obj中所有键的对象... ie:

json_obj = array(
        'uploads/featured/moon-5469.jpg',
        'uploads/featured/doublewm-4097.jpg'
);

3 个答案:

答案 0 :(得分:1)

如果您的输入始终采用相同的格式,则可以像这样处理

$tmp = json_decode($resultSet);
$json_obj = array();
foreach ($tmp as $values) {
    array_push($json_obj, $values[0]);
}

这将为您提供所需格式的$json_obj,其中包含您提供的硬编码$resultSet

答案 1 :(得分:0)

也许这就是你要找的东西:

json编码服务器端像:

 echo json_encode($html);

json解析客户端像

 var str = JSON.parse(data);
 alert (JSON.stringify(str))

答案 2 :(得分:0)

我设法解决了这个问题:

将json对象更改为此格式

data = { gallery: gallery_name, 
           files: [
                     // imagefile,imagefile,imagefile...
                   ] 
        };

使用以下php

    $resultSet = json_decode($_GET['submittedResults'], true);
    $gallery = $resultSet['gallery'];
    $files_to_zip = $resultSet['files'];