相关疑难解决方法(0)

使用Unix工具解析JSON

我正在尝试解析从curl请求返回的JSON,如下所示:

curl 'http://twitter.com/users/username.json' |
    sed -e 's/[{}]/''/g' | 
    awk -v k="text" '{n=split($0,a,","); for (i=1; i<=n; i++) print a[i]}'
Run Code Online (Sandbox Code Playgroud)

以上将JSON拆分为字段,例如:

% ...
"geo_enabled":false
"friends_count":245
"profile_text_color":"000000"
"status":"in_reply_to_screen_name":null
"source":"web"
"truncated":false
"text":"My status"
"favorited":false
% ...
Run Code Online (Sandbox Code Playgroud)

如何打印特定字段(用-v k=text?表示)?

bash parsing json

794
推荐指数
25
解决办法
87万
查看次数

Unix命令行JSON解析器?

任何人都可以推荐一个Unix(选择你的风味)JSON解析器,可以用来内省管道中JSON响应的值吗?

unix configuration parsing json

125
推荐指数
7
解决办法
12万
查看次数

如何使用人类可读的日期格式将BSON转换为JSON

我想将MongoDB的BSON转储转换为JSON.

要做到这一点,我正在使用Mongo提供的bsondump工具,但我得到的输出如下:

{ "_id" : ObjectId( "5316d194b34f6a0c8776e187" ), "begin_date" : Date( 1394004372038 ), "foo" : "bar" }
{ "_id" : ObjectId( "5316d198b34f6a0c8776e188" ), "begin_date" : Date( 1394004407696 ), "foo" : "bar" }
Run Code Online (Sandbox Code Playgroud)

谁能告诉我如何以人类可读的格式显示日期(例如hh:mm:ss dd/mm/yyyy)?

编辑

看起来更新版的mongodump输出日期为:

{ "_id" : ObjectId( "5316d194b34f6a0c8776e187" ), "begin_date" : {"$date":"2015-11-11T08:45:03.974Z"}}, "foo" : "bar" }
Run Code Online (Sandbox Code Playgroud)

所以这个问题不再适用了.感谢大家的帮助.

json date mongodb bson

26
推荐指数
2
解决办法
3万
查看次数

从JSON中查找key的值

我想"id"从这一行JSON中提取密钥.

我相信这可以用grep完成,但我不确定是否正确.

如果有更好的方式没有依赖关系,我会感兴趣.

这是我的示例输出:

{"data": {"name": "test", "id": "4dCYd4W9i6gHQHvd", "domains": ["www.test.domain.com", "test.domain.com"], "serverid": "bbBdbbHF8PajW221", "ssl": null, "runtime": "php5.6", "sysuserid": "4gm4K3lUerbSPfxz", "datecreated": 1474597357}, "actionid": "WXVAAHQDCSILMYTV"}
Run Code Online (Sandbox Code Playgroud)

grep json

9
推荐指数
4
解决办法
2万
查看次数

如何使用linux解析json与shell脚本

我有一个Json输出,我需要在linux中提取一些参数.

这是json输出:

{
  "OwnerId":"121456789127",
  "ReservationId":"r-48465168",
  "Groups":[

  ],
  "Instances":[
    {
      "Monitoring":{
        "State":"disabled"
      },
      "PublicDnsName":null,
      "RootDeviceType":"ebs",
      "State":{
        "Code":16,
        "Name":"running"
      },
      "EbsOptimized":false,
      "LaunchTime":"2014-03-19T09:16:56.000Z",
      "PrivateIpAddress":"10.250.171.248",
      "ProductCodes":[
        {
          "ProductCodeId":"aacglxeowvn5hy8sznltowyqe",
          "ProductCodeType":"marketplace"
        }
      ],
      "VpcId":"vpc-86bab0e4",
      "StateTransitionReason":null,
      "InstanceId":"i-1234576",
      "ImageId":"ami-b7f6c5de",
      "PrivateDnsName":"ip-10-120-134-248.ec2.internal",
      "KeyName":"Test_Virginia",
      "SecurityGroups":[
        {
          "GroupName":"Test",
          "GroupId":"sg-12345b"
        }
      ],
      "ClientToken":"VYeFw1395220615808",
      "SubnetId":"subnet-12345314",
      "InstanceType":"t1.micro",
      "NetworkInterfaces":[
        {
          "Status":"in-use",
          "SourceDestCheck":true,
          "VpcId":"vpc-123456e4",
          "Description":"Primary network interface",
          "NetworkInterfaceId":"eni-3619f31d",
          "PrivateIpAddresses":[
            {
              "Primary":true,
              "PrivateIpAddress":"10.120.134.248"
            }
          ],
          "Attachment":{
            "Status":"attached",
            "DeviceIndex":0,
            "DeleteOnTermination":true,
            "AttachmentId":"eni-attach-9210dee8",
            "AttachTime":"2014-03-19T09:16:56.000Z"
          },
          "Groups":[
            {
              "GroupName":"Test",
              "GroupId":"sg-123456cb"
            }
          ],
          "SubnetId":"subnet-31236514",
          "OwnerId":"109030037527",
          "PrivateIpAddress":"10.120.134.248"
        }
      ],
      "SourceDestCheck":true,
      "Placement":{
        "Tenancy":"default",
        "GroupName":null,
        "AvailabilityZone":"us-east-1c" …
Run Code Online (Sandbox Code Playgroud)

linux shell awk json sed

8
推荐指数
1
解决办法
2万
查看次数

在shell中逐列解析Json数据

当我运行命令时,我得到这样的响应

{

    "status": "available",
    "managed": true,
    "name":vdisk7,
    "support":{
    "status": "supported"
    },
    "storage_pool": "pfm9253_pfm9254_new",
    "id": "ff10abad"-2bf-4ef3-9038-9ae7f18ea77c",
    "size":100
},
Run Code Online (Sandbox Code Playgroud)

和数百种这种类型的列表或词典我想要一个做这种事情的命令

if name = "something", 
    get the id
Run Code Online (Sandbox Code Playgroud)

任何可以帮助我学习这类命令的链接都将受到高度赞赏

我试过了

awk'{if($ 2 =="something")打印$ 0;}'

但我认为响应是在Json中,因此colum明智的awk格式化不起作用.

此外,它只是我需要运行的一个命令,所以我不想使用任何外部库.

bash shell awk

5
推荐指数
1
解决办法
7056
查看次数

使用 bash 从 JSON 文件中提取数据

假设我们有这样的 JSON 文件:

{
  ... 
  "quotes":{
     "SOMETHING":10,
     ...
     "SOMETHING_ELSE":120.4,
     ...
  }   }
Run Code Online (Sandbox Code Playgroud)

我怎样才能获得这些值并使用它们将它们加在一起?

我连这个都能做到吗?

#!/bin/bash

#code ...

echo "$SOMETHING + $SOMETHING_ELSE" | bc

#code ...

#exit
Run Code Online (Sandbox Code Playgroud)

我将使用 wget 命令获取 JSON 文件。我想要的只是该文件中的内容。

你能帮我吗?我是 shell 编程的初学者。

bash shell json

2
推荐指数
1
解决办法
2万
查看次数

标签 统计

json ×6

bash ×3

shell ×3

awk ×2

parsing ×2

bson ×1

configuration ×1

date ×1

grep ×1

linux ×1

mongodb ×1

sed ×1

unix ×1