首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >抖动变换JSON Spec

抖动变换JSON Spec
EN

Stack Overflow用户
提问于 2020-08-25 14:52:19
回答 1查看 369关注 0票数 0

我需要在输入JSON下面进行转换,以输出JSON,并且不确定如何编写规范。需要将一个字段("homePage")重新定位为根元素。如有任何帮助或建议,将不胜感激。

输入JSON:

代码语言:javascript
复制
[{
    "uuid": "cac40601-ffc9-4fd0-c5a1-772ac65f0587",
    "pageId": 123456,    
    "page": {
      "indexable": true,
      "rootLevel": false,
      "homePage": false      
    }
}]

输出JSON:

代码语言:javascript
复制
[{
    "uuid": "cac40601-ffc9-4fd0-c5a1-772ac65f0587",
    "pageId": 123456,
    "homePage": false,  
    "page": {
      "indexable": true,
      "rootLevel": false           
    }
}]
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-08-25 15:44:03

这个颠簸规格应该对你有用。用https://jolt-demo.appspot.com/测试

代码语言:javascript
复制
[
  {
    "operation": "shift",
    "spec": {
      "*": {
        "uuid": "[&1].uuid",
        "pageId": "[&1].pageId",
        "page": {
          "indexable": "[&2].page.indexable",
          "rootLevel": "[&2].page.rootLevel",
          "homePage": "[&2].homePage"
        }
      }
    }
  }
]

投入:

代码语言:javascript
复制
{
  "uuid" : "cac40601-ffc9-4fd0-c5a1-772ac65f0587",
  "pageId" : 123456,
  "page" : {
    "indexable" : true,
    "rootLevel" : false
  },
  "homePage" : false
}

产出:

代码语言:javascript
复制
[ {
  "uuid" : "cac40601-ffc9-4fd0-c5a1-772ac65f0587",
  "pageId" : 123456,
  "page" : {
    "indexable" : true,
    "rootLevel" : false
  },
  "homePage" : false
} ]

解释:

来自javadoc

&路径查找 当Shiftr处理数据并沿着规范走时,它维护一个数据结构,描述它走过的路径。&通配符可以以0大方向向上的方式从该路径访问数据。示例: { " foo“:{ "bar":{ "baz":// &0 = baz,&1 = bar,&2 =foo}}

下一步:如何将输出对象包装到数组中?在这个职位中可以找到一个很好的例子。

因此,在我们的案例中:

  • "[&1].uuid"说:

uuid值放置在数组中的对象中。数组的索引由&1通配符指示。对于uuid,它将是数组的索引,其中带有uuid键的对象被放置在原始的json中。

  • 接下来,[&2][&1]类似。但是,看看"indexable"键,它在输入json中是一个更深的层次。这就是为什么我们使用的不是[&1],而是[&2] (再看一下文档中的foo示例)。
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63581550

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档