• 使用json-mask 查询json 数据


    我们在处理json 数据的时候很多时候会需要部分json 数据,一般的处理方式是jsonpath,jmeshpath ,jsonselect
    json-mask 是另外一个不错的选择(很遗憾不是标准,目前只有js 的实现),而且json-mask 的好处是可以保留数据
    接口,以下是一个简单的学习

    语言说明

     
    a,b,c 选择多个字段
    a/b/c 从父节点,选择子字段
    a(b,c) 从父节点,选择多个字段
    a/*/c 通配符模式,选择所有元素指定的字段

    环境准备

    • 项目结构
    yarn init -y
    yarn add json-mask
    • 代码
      app.js:
     
    const mask  = require("json-mask")
    var fields = 'url,object(content,attachments/url)';
    var originalObj = {
        id: 'z12gtjhq3qn2xxl2o224exwiqruvtda0i',
        url: 'https://plus.google.com/102817283354809142195/posts/F97fqZwJESL',
        object: {
          objectType: 'note',
          content:
            'A picture... of a space ship... launched from earth 40 years ago.',
          attachments: [
            {
              objectType: 'image',
              url: 'http://apod.nasa.gov/apod/ap110908.html',
              image: { height: 284,  506 }
            }
          ]
        },
        provider: { title: 'Google+' }
      };
    var maskedObj = mask(originalObj, fields);
    console.log(JSON.stringify(maskedObj))
    • 效果
     node app.js | jq .
    {
      "url": "https://plus.google.com/102817283354809142195/posts/F97fqZwJESL",
      "object": {
        "content": "A picture... of a space ship... launched from earth 40 years ago.",
        "attachments": [
          {
            "url": "http://apod.nasa.gov/apod/ap110908.html"
          }
        ]
      }
    }

    说明

    json-mask 同时提供了一个框架中间件的实现比如express

    参考资料

    https://github.com/nemtsov/json-mask

  • 相关阅读:
    新博客即将启用
    关于博主 | 联系博主
    结束吧,为这不圆满的故事划上一个残缺的句号
    自用线段树模板
    NOIP 2017 day 1 游记
    NOIP 2017 Day 0. 游记
    NOIP 2017 day -1 杂记
    再一次想不出应该起什么标题
    做图与树做到吐的一天
    自用二分图匹配模板
  • 原文地址:https://www.cnblogs.com/rongfengliang/p/13582315.html
Copyright © 2020-2023  润新知