json用php中的数组解码

时间:2014-06-12 08:27:45

标签: php json

我遇到从json获取数据的问题。我无法更改它在数据库中保存的方式,因为它是由框架生成的,并且在读取之后生成字段。我的json看起来像这样:

{"102":{"textinput":{"comment":"2"}},"104":"34"}

 OR

{"78":{"textinput":{"comment":"1"}},"82":"34"}

评论值是我从这个json获取的序列号。我尝试过:

$json_sn = json_decode($customer_json_sn, true);
$snr = $json_sn['78']['textinput']['comment'];

但这不是我需要的解决方案,因为我从来不知道第一个数字键的价值,我不能依赖它。任何帮助将不胜感激。

3 个答案:

答案 0 :(得分:2)

如果此格式始终相同,则可以在此格式上使用reset()功能。考虑这个例子:

$json_sn = json_decode($customer_json_sn, true);
$snr = reset($json_sn);
echo $snr['textinput']['comment'];

答案 1 :(得分:1)

怎么样:

$snr_array = array()
foreach ($json_sn as $key)
    snr_array[] = $key['textinput']['comment'];

编辑:我刚刚意识到你可能只需要/得到一条评论:

$key = key($json_sn);
$snr = $json_sn[$key]['textinput']['comment'];

答案 2 :(得分:0)

你可以这样做:

<?php

$json = '{"78":{"textinput":{"comment":"1"}},"82":"34"}';

var_dump(json_decode($json, true));

$data = json_decode($json, true);

foreach( $data as $key => $value ) {

    # Check if exsit
    if (isset($value['textinput']['comment'])) {
        echo "Value: " . $value['textinput']['comment'];
    }
}