遍历 PHP 中的 JSON 字符串?
Iterate through JSON String in PHP?
这似乎是一个非常简单的问题,但我有点挣扎:我通过 JavaScript 收到一个 JSON 字符串。现在我想遍历元素。生成的字符串具有以下形式:{"title":value,"title2":value}
如何在不知道键和值的情况下遍历此 JSON 字符串?我想得到这个输出:
title -> value
title2 -> value2
我这样试过:
$json = file_get_contents('php://input');
$array = json_decode($json,true);
$response = "Test";
foreach($array as $key=>$val) {
$response = $response. "$key : $val";
}
echo json_encode($response);
它只是returns“测试”。如果我将它更改为 echo json_encode($array),它 returns 提到的 JSON String.
你在问题中提到了 javascript 和 php,所以我将同时回答这两个问题。这是JS,两种不同的方式。我相信 foreach 现在不再强调有利于 (of) 构造,但我主要不在 JS 中工作:
var json = '{"title": 12, "title2": "text"}';
var data = JSON.parse(json);
Object.keys(data).forEach(function(key) {
console.log(key + ' -> ' + data[key])
})
for(key of Object.keys(data)) {
console.log(key + ' -> ' + data[key]);
}
对于PHP:
您可以使用 json_decode:
将 json 字符串解析为数组
$json = '{"title": 12, "title2": "text"}';
$arr = json_decode($json, true);
foreach($arr as $key=>$val) {
echo "$key : $val";
}
true 将其解析为数组而不是 std 对象。
由于响应的格式,您必须解码已解码的格式才能按需获取对象
$json = '{"title": 12, "title2": "text"}';
$encoded=json_encode($json);
$decoded=json_decode($encoded);
$ddecode=json_decode($decoded);
foreach($ddecode as $key=>$val) {
echo "$key -> $val";
}
输出:
title -> 12 title2 -> text
这似乎是一个非常简单的问题,但我有点挣扎:我通过 JavaScript 收到一个 JSON 字符串。现在我想遍历元素。生成的字符串具有以下形式:{"title":value,"title2":value}
如何在不知道键和值的情况下遍历此 JSON 字符串?我想得到这个输出:
title -> value
title2 -> value2
我这样试过:
$json = file_get_contents('php://input');
$array = json_decode($json,true);
$response = "Test";
foreach($array as $key=>$val) {
$response = $response. "$key : $val";
}
echo json_encode($response);
它只是returns“测试”。如果我将它更改为 echo json_encode($array),它 returns 提到的 JSON String.
你在问题中提到了 javascript 和 php,所以我将同时回答这两个问题。这是JS,两种不同的方式。我相信 foreach 现在不再强调有利于 (of) 构造,但我主要不在 JS 中工作:
var json = '{"title": 12, "title2": "text"}';
var data = JSON.parse(json);
Object.keys(data).forEach(function(key) {
console.log(key + ' -> ' + data[key])
})
for(key of Object.keys(data)) {
console.log(key + ' -> ' + data[key]);
}
对于PHP:
您可以使用 json_decode:
将 json 字符串解析为数组$json = '{"title": 12, "title2": "text"}';
$arr = json_decode($json, true);
foreach($arr as $key=>$val) {
echo "$key : $val";
}
true 将其解析为数组而不是 std 对象。
由于响应的格式,您必须解码已解码的格式才能按需获取对象
$json = '{"title": 12, "title2": "text"}';
$encoded=json_encode($json);
$decoded=json_decode($encoded);
$ddecode=json_decode($decoded);
foreach($ddecode as $key=>$val) {
echo "$key -> $val";
}
输出:
title -> 12 title2 -> text