javascript - 如何遍历 JSON 响应文本并使用 PHP 获取所有值
问题描述
{
"ver":1,
"inputs":[
{
"sequence":4294967295,
"witness":"",
"prev_out":{
"spent":true,
"tx_index":372805487,
"type":0,
"addr":"3AFgA1pHKrk4jFHwzUL1CKgZvXyFSWZfgD",
"value":12712,
"n":0,
"script":"a9145dee3b52c0c363fd962c57f33f346c453dba7e5687"
},
"script":"00483045022100a3edd460e3aa186f4b318930d80ca97cb25d5e741896cf0a396151c0b0e39953022012f0bad5edea4aca199e19c68859e3f04a4dc7bedd5ceecfdba652707490e1bf0147304402206b86cf8f21dc79d85a1ba341416cabf98b1c837fa3468c5cec4ad0d2f707fe2f02205da8b6ffe1ec67bf703a4f1a45394c4f9ac7c14db2216d937025fdcb0dfe007501475221031131d02767e849cc0a03d067569b77a3b0b28797d1fecacfeaee6fa35a0634f221034b79ba896e312200d17e6a0e11266247522e48a6900a035231aca2c596dcc20e52ae"
}
],
"weight":1212,
"block_height":543349,
"relayed_by":"0.0.0.0",
"out":[
{
"spent":false,
"tx_index":377146538,
"type":0,
"addr":"13Zggf2Jc8K6e2hZ9fTP8ymzVyaYQWhRBR",
"value":5443,
"n":0,
"script":"76a9141c1eb04aeb07c5a80fff5d7ab6382f6550dccd3188ac"
}
],
"lock_time":0,
"size":303,
"double_spend":false,
"time":1538084433,
"tx_index":377146538,
"vin_sz":1,
"hash":"249256b255e9850fbf9abcbc73f8c872be2b51d3a055b66680bc7150f5bc1d1e",
"vout_sz":1
}
解决方案
您需要使用 将 json 响应转换为 php 数组json_decode
。
片段
$json = '{
"ver":1,
"inputs":[
{
"sequence":4294967295,
"witness":"",
"prev_out":{
"spent":true,
"tx_index":372805487,
"type":0,
"addr":"3AFgA1pHKrk4jFHwzUL1CKgZvXyFSWZfgD",
"value":12712,
"n":0,
"script":"a9145dee3b52c0c363fd962c57f33f346c453dba7e5687"
},
"script":"00483045022100a3edd460e3aa186f4b318930d80ca97cb25d5e741896cf0a396151c0b0e39953022012f0bad5edea4aca199e19c68859e3f04a4dc7bedd5ceecfdba652707490e1bf0147304402206b86cf8f21dc79d85a1ba341416cabf98b1c837fa3468c5cec4ad0d2f707fe2f02205da8b6ffe1ec67bf703a4f1a45394c4f9ac7c14db2216d937025fdcb0dfe007501475221031131d02767e849cc0a03d067569b77a3b0b28797d1fecacfeaee6fa35a0634f221034b79ba896e312200d17e6a0e11266247522e48a6900a035231aca2c596dcc20e52ae"
}
],
"weight":1212,
"block_height":543349,
"relayed_by":"0.0.0.0",
"out":[
{
"spent":false,
"tx_index":377146538,
"type":0,
"addr":"13Zggf2Jc8K6e2hZ9fTP8ymzVyaYQWhRBR",
"value":5443,
"n":0,
"script":"76a9141c1eb04aeb07c5a80fff5d7ab6382f6550dccd3188ac"
}
],
"lock_time":0,
"size":303,
"double_spend":false,
"time":1538084433,
"tx_index":377146538,
"vin_sz":1,
"hash":"249256b255e9850fbf9abcbc73f8c872be2b51d3a055b66680bc7150f5bc1d1e",
"vout_sz":1
}';
$arr = json_decode($json, true); // you can use $arr direct as json hierarchy
//or convert to one-dimensional array
$result = [];
array_walk_recursive($arr, function ($item, $key) use (&$result){
$result[$key] = $item;
});
print_r($result);
输出
Array
(
[ver] => 1
[sequence] => 4294967295
[witness] =>
[spent] =>
[tx_index] => 377146538
[type] => 0
[addr] => 13Zggf2Jc8K6e2hZ9fTP8ymzVyaYQWhRBR
[value] => 5443
[n] => 0
[script] => 76a9141c1eb04aeb07c5a80fff5d7ab6382f6550dccd3188ac
[weight] => 1212
[block_height] => 543349
[relayed_by] => 0.0.0.0
[lock_time] => 0
[size] => 303
[double_spend] =>
[time] => 1538084433
[vin_sz] => 1
[hash] => 249256b255e9850fbf9abcbc73f8c872be2b51d3a055b66680bc7150f5bc1d1e
[vout_sz] => 1
)
现场演示
请注意:您可以$arr
用作 json 层次结构,也可以将所有键和值转换为一维数组。
警告:重复的键将被覆盖
文档
推荐阅读
- package - 为什么包体没有显示 sqldeveloper 中的所有对象?
- python - 使用 Python 从 Web 服务中提取数据
- python - 如何将函数应用于将列作为参数传递的数据框
- javascript - Javascript (Vue.js) 在 vue-tree-list 中查找元素并修改它的子元素
- javascript - 如何计算状态被激活的次数?
- kubernetes - Kubernetes 部署中的容器不使用 hostNetwork
- python - 如何使 python 字典中的数据在 Flask/sqlALchemy 中可访问?
- python - odoo 14,如何使我的模型可序列化?
- angular - Angular - 使用 Observables 进行长轮询 - 单元测试
- octave - 如何从线/曲线交点找到 y 值?