gpt4 book ai didi

java - 如何在 java 编程中模板化 json

转载 作者:行者123 更新时间:2023-11-30 07:45:00 24 4
gpt4 key购买 nike

我的用例是我有一个 json 文件,但我只需要将其中的几个共享给客户。示例:考虑如下所示的源 json 文件。

{
"name": "XYZ",
"age": 24,
"education": {
"college": "ppppp",
"study": "b.tech",
"grade": 6.8
},
"friends": ["kkkk",
"bbbbbbbbbbb",
"jjjjjj"],
"dob":"01-08-1990"
}

对于客户端 1,我必须共享以下输出

{
"personalInfo": {
"name": "XYZ",
"age": 24,
"friendsNames": ["kkkk","bbbbbbbbbbb","jjjjjj"]
},
"educationalInfo": {
"college": "ppppp",
"study": "b.tech",
"grade": 6.8
}
}

对于客户端 2,我必须共享以下输出

{
"personalInformation": {
"nameOfEmployee": "XYZ",
"ageOfEmployee": 24
},
"educationalInformation": {
"college": "ppppp",
"study": "b.tech"
}
}

对于其他客户端,用例也是相同的,我必须跳过一些键并为键指定不同的名称。如何通过某种配置动态地做到这一点。我使用 jsonPath 来实现这一点,但是很难从 json 对象中删除几个键。如有任何建议,我们将不胜感激。

最佳答案

使用JSON 路径 库,例如JayWay .这样,转换您的示例的模板将是:

客户1

{
"personalInfo": {
"name": "$.name",
"age": "$.age",
"friendsNames": "$.friends"
},
"educationalInfo": "$.education"
}

客户2

{
"personalInformation": {
"nameOfEmployee": "$.name",
"ageOfEmployee": "$.age"
},
"educationalInformation": {
"college": "$.education.college",
"study": "$.education.study"
}
}

你需要实现的是模板遍历。大约20行代码;或者 40 如果您还需要转换列表元素,例如:

{
"friends": [ "$.friends[?(@ =~ /.{5,}/)]", {
"name": "@",
"since": "$.dob"
} ]
}

这会导致:

{
"friends": [ {
"name": "bbbbbbbbbbb",
"since": "01-08-1990"
}, {
"name": "jjjjjj",
"since": "01-08-1990"
} ]
}

关于java - 如何在 java 编程中模板化 json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52167101/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com