我有一个主JSON文件,其中包含配置文本作为模板。像下面这样。
{
"first": "This is the first line",
"second": "This is the second line",
"third": "This is the third line",
"fourth": "This is the fourth line"
}
我想根据一些规则从上面的母版生成另一个JSON文件。例如,请参见下面的代码段了解我的要求
{
"first": "This is the first custom line",
"second": [I want this populated from master.second and master.fourth],
"third": [I want this populated from master.third],
"fifth": "This is the local fifth section"
}
正在寻找有关最佳方法的建议。通常,我希望能够配置大量复杂文件。
我的应用程序是基于Java的,因此,使用JSON,Java或任何其他兼容工具的任何建议将不胜感激。
谢谢
答案 0 :(得分:1)
虽然这些json看起来很相似,但它们无法映射到相同的Java对象,seconds
和third
字段的类型不同
所以根据您的假设,我认为最简单的方法是创建两个类,例如
class MasterJsonObject {
private String first;
private String second;
private String third;
private String fourth;
}
class GeneratedJsonObject {
private String first;
private List<String> second;
private List<String> third;
private String fourth;
}
读取json并将其映射到MasterJsonObject
,像这样创建GeneratedJsonObject
GeneratedJsonObject generatedJsonObject = new GeneratedJsonObject();
generatedJsonObject.setFirst(masterJsonObject.getFirst());
generatedJsonObject.setSecond(Arrays.asList(masterJsonObject.getSecond(), masterJsonObject.getForth()));
...
然后您可以将generatedJsonObject
写成json
您可以使用通用方法和其他方法来实现更可靠的行为...
要使用Java读写json,我建议您研究Jackson
如果您只是想连接字符串,例如
,我假设您的代码"second": [I want this populated from master.second and master.fourth],
中的意思是list
"second": "This is the second line This is the fourth line"
答案更改为:
generatedJsonObject
).setSecond(masterJsonObject.getSecond() + " " + masterJsonObject.getForth());