【发布时间】:2014-01-19 02:02:15
【问题描述】:
我在文件 sample.txt 中有一个 json
我想解码整个 json 并通过指定打印键值。我的每个代码是
#!/usr/bin/perl
use JSON;
use Data::Dumper;
use JSON::XS qw( decode_json );
open (han1, "sample.txt") or die "can not read this file ";
@array1 = <han1>;
$tst = $array1[0];
$text = decode_json $tst;
print Dumper($text);
我在 json 名称 'messages_ready' 中有一个键。我想打印'messages_ready'的值..
我的 json 如下
[
{
"arguments": {},
"auto_delete": false,
"backing_queue_status": {
"avg_ack_egress_rate": 55.02128728993393,
"avg_ack_ingress_rate": 55.02128728993393,
"avg_egress_rate": 55.02128728993393,
"avg_ingress_rate": 109.64602476156203,
"delta": [
"delta",
0,
0,
0
],
"len": 6465,
"next_seq_id": 7847104,
"pending_acks": 4,
"persistent_count": 0,
"q1": 0,
"q2": 0,
"q3": 0,
"q4": 6465,
"ram_ack_count": 4,
"ram_msg_count": 6465,
"target_ram_count": "infinity"
},
"consumers": 4,
"durable": true,
"exclusive_consumer_tag": "",
"memory": 19373224,
"message_stats": {
"ack": 7840491,
"ack_details": {
"rate": 60.4
},
"deliver": 7840497,
"deliver_details": {
"rate": 60.4
},
"deliver_get": 7840498,
"deliver_get_details": {
"rate": 60.4
},
"get": 1,
"get_details": {
"rate": 0.0
},
"publish": 7847260,
"publish_details": {
"rate": 105.4
},
"redeliver": 3,
"redeliver_details": {
"rate": 0.0
}
},
"messages": 6469,
"messages_details": {
"rate": 74.6
},
"messages_ready": 6465,
"messages_ready_details": {
"rate": 74.6
},
"messages_unacknowledged": 4,
"messages_unacknowledged_details": {
"rate": 0.0
},
"name": "reports",
"node": "rabbit@ip-10-0-0-105",
"policy": "",
"status": "running",
"vhost": "/"
},
{
"arguments": {},
"auto_delete": false,
"backing_queue_status": {
"avg_ack_egress_rate": 0.0,
"avg_ack_ingress_rate": 0.0,
"avg_egress_rate": 0.0,
"avg_ingress_rate": 0.0,
"delta": [
"delta",
"undefined",
0,
"undefined"
],
"len": 1,
"next_seq_id": 1,
"pending_acks": 0,
"persistent_count": 0,
"q1": 0,
"q2": 0,
"q3": 0,
"q4": 1,
"ram_ack_count": 0,
"ram_msg_count": 1,
"target_ram_count": "infinity"
},
"consumers": 0,
"durable": true,
"exclusive_consumer_tag": "",
"idle_since": "2013-12-31 13:03:35",
"memory": 13760,
"message_stats": {
"publish": 1,
"publish_details": {
"rate": 0.0
}
},
"messages": 1,
"messages_details": {
"rate": 0.0
},
"messages_ready": 1,
"messages_ready_details": {
"rate": 0.0
},
"messages_unacknowledged": 0,
"messages_unacknowledged_details": {
"rate": 0.0
},
"name": "test",
"node": "rabbit@ip-10-0-0-105",
"policy": "",
"status": "running",
"vhost": "/"
}
]
我该怎么做?在这里帮帮我...请
【问题讨论】:
-
如果你没有使用 JSON::XS 提供的所有东西,我建议你使用 JSON::Tiny,JSON::Tiny 顾名思义,开销很小,如果性能更好,效果会更好对你很重要