nodejs jsonpath

advanced-json-path

var JsonPath = require("advanced-json-path");

let data = {

    header: {

        "assetNo": "09020000000176",

        "equipType": "",

        "optCmd": "park_data_9011",

        "requestTime": 1513763583639,

        "responseTime": 1513763583639,

        "dataSource": "0",

        "code": 300,

        "msg": "数据取得成功。"

    },

    status: "300",

    statusType: "002",

    time_status: 1513763583639,

    code: 200

};

1)直接取出对应字段的值

1

let flag = JsonPath(data, '$.code');

Result:200

2

let flag = JsonPath(data, '$.header.code');

Result:300

(2)根据条件取出对应字段的值

1

let flag = JsonPath(data, '$.[?(@.status=="300")].code');

Result:200

let flag = JsonPath(data, '$.[?(@.status=="400")].code');

Result:false

2

let flag = JsonPath(data, '$.header[?(@.optCmd=="park_data_9011")].code');

Result:300

(3)判断多个条件是否成功

1 判断status= "300"并且statusType="002"

let flag = JsonPath(data, '$.[?(@.status=="300")][?(@.statusType == "002")]');

Result:{ header:

   { assetNo: '09020000000176',

     equipType: '',

     optCmd: 'park_data_9011',

     requestTime: 1513763583639,

     responseTime: 1513763583639,

     dataSource: '0',

     code: 300,

     msg: '数据取得成功。' },

  status: '300',

  statusType: '002',

  time_status: 1513763583639,

  code: 200 }

 

针对数组

let data = {

    header: {

        "assetNo": "09020000000176",

        "equipType": "",

        "optCmd": "park_data_9011",

        "requestTime": 1513763583639,

        "responseTime": 1513763583639,

        "dataSource": "0",

        "code": 300,

        "msg": "数据取得成功。"

    },

    status: "300",

    statusType: "002",

    time_status: 1513763583639,

    code: 200,

    "data": [

        {

            "code": 100,

            "value": "100_value"

        },

        {

            "code": 200,

            "value": "200_value"

        },

        {

            "code": 300,

            "value": "300_value"

        }

    ]

};

1)

let flag = JsonPath(data, '$.data.[?(@.code=="100")].value');

Result : 100_value;

(2)

let flag = JsonPath(data, '$.data.[?(@.code=="200")].value');

Result : 200_value;

注意:$后面的data不能少,必须定位到数组里面,否则

let flag = JsonPath(data, '$.[?(@.code=="200")].value'),结果:false

 

 

 

 地址:https://www.npmjs.com/package/advanced-json-path

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值