目前,我很难正确建模一个小型指令集,我希望将其作为JSON发送到Android应用程序中,以生成UI部件列表。现在,它是分层的,就像一个对象/条件和元数据的级联树一样。
小例子:
{
"instruction": {
"remarks": "",
"steps": [
{
"id": "1234",
"type": "text",
"text": "Welcome!"
},
{
"..": "..",
"type": "image",
"url": "example.org/image.png"
},
..
]
}
但是现在我的指令集越来越多,有些部件有时会被忽略,而不是存在,有些部分需要填充。我还想让JSON易于解析,所以我想我可能需要为像GSON这样的解析库做一些简单的java类。
我该怎么做呢?
我也对如何将这些引用(如果我使用它们)转换为JSON字段感到有点困惑,这个JSON字段可以由像GSON这样的库读取到java代码中。
我提到的引用和嵌入文档概念来自MongoDB数据模型设计。因为我认为在NoSQL数据库(如MongoDB )中保存JSON可能很容易。
在这种情况下,是否还有一种更好的方法来描述我的JSON数据,比如JSON模式?
发布于 2018-09-19 10:44:37
当涉及对象序列化时,数据传输对象(如前所述)为您提供了在面向对象语言中反映JSON结构的灵活性。每个技术堆栈都有一种将JSON解析为特定数据格式的方法(int's、字符串、浮点数、结构、复杂对象、数组等)。
一旦您拥有了DTO,您就可以根据您的需要将其映射到其他类型的类,无论它们是域模型、视图模型还是应用程序某个模糊角落中需要的其他“模型”。
您可以找到的JSON解析库通常使用类反射来推断数据类型,或者提供一种使用配置文件或fluent API指定映射的方法。
发布于 2018-09-19 13:48:19
我想你的问题可能已经被回答了,在堆栈溢出处。它涉及到使用http://json-schema.org/规范来设计JSON并将其与https://github.com/joelittlejohn/jsonschema2pojo进行转换。不确定github是否需要对当前版本的Java进行任何更新,但它可能会给您提供一个很好的起点。
https://softwareengineering.stackexchange.com/questions/378686
复制相似问题