如何在json中获取2个字段?
如果有1个字段,请执行以下操作:
<td>'.$json["email"].'</td>
然后添加:
========
orders
========
{email":"tst@gmail.com","name":"myname","phone":"+123123123"}
如何从json先生获得2个字段,我的意思是这样的
字段1:订单
=========
country
=========
[{id":"001","country:"english","code:"123123"}]
字段2:国家/地区
$json_orders = json_decode($row['orders'], true);
$email = $json_orders['email'];
$json_country = json_decode($row['country'], true);
$country = $json_country['country'];
查看国家/地区字段与订单字段不同的代码
在订单字段中有代码{}
并且在counrty字段中有代码[{}]
我尝试这样做不起作用:
<td>'.$json['email'].'</td>
<td>'.$json['country'].'</td>
然后在表css:
中{{1}}
如何从json先生的2个字段中获取数据?
谢谢
答案 0 :(得分:0)
您的json输入数据格式不正确,因为有多个缺少双引号。
具体来说,email
和id
需要在它们之前加上双引号,country
和code
之后需要双引号。
最初,我认为这是一个代码发布错误,但如果这是您实际项目中的问题,那么某些东西不会生成有效的json字符串。如果您正在构建这些字符串,我希望您使用json_encode()
转换数组,而不是尝试使用连接手动编写这些准json字符串。
如果您修复了json字符串,则可以解码并访问如下数据:
代码:(Demo)
$row['orders'] = '{"email":"tst@gmail.com","name":"myname","phone":"+123123123"}'; // assoc array
$row['country'] = '[{"id":"001","country":"english","code":"123123"}]'; // indexed array containing an assoc array
$json_orders = json_decode($row['orders'], true);
echo $json_orders['email'];
echo "\n---\n";
$json_country = json_decode($row['country'], true);
echo $json_country[0]['country'];
输出:
tst@gmail.com
---
english
*请注意,$row['country']
具有与$row['orders']
不同的结构(多维),因此您必须使用[0]
访问第一级。