如何从另一个主Json配置文件生成Json

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何从另一个主Json配置文件生成Json相关的知识,希望对你有一定的参考价值。

我有一个主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或任何其他兼容工具的任何建议将不胜感激。

谢谢

答案

虽然那些json看起来很相似,但是它们不能映射到相同的Java对象,secondsthird字段的类型不同

所以根据您的假设,我认为最简单的方法是创建2个类,例如

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());创建jsonObject
另一答案

您可以使用模板框架,如freemarker。并使用json库将json数据转换为Map / List形式,以便模板框架可以使用它。

以上是关于如何从另一个主Json配置文件生成Json的主要内容,如果未能解决你的问题,请参考以下文章

动态生成 uniapp 配置文件 pages.json 的解决方案

uni-app 为何package.json配置以后不会生成文件?

Android配置文件分享和JSON数据生成与解析

C#利用newtonsoft.json读取.so配置文件内容

配置package.json文件

11-Json文件配置