我有非常复杂的JSON数据来自后端,其中包含许多嵌套字段,例如:
{
"a": ...
"b": ...
"not-required-1":{
"not-required-2":[
...
]
..
},
"not-required-3":{
"not-required-4":[
...
]
...
}
}
我只对"a"和"b"感兴趣,我可以将它们映射到相应的值类型。但对象有许多我不需要的字段,在我更改"a"和"b"时它们应该被序列化。
如果我只创建了带有"a"和"b"的类型,当我序列化我的对象时,所有"非必需"字段都会消失。唯一的选择是将每个"非必需"字段映射到相应的Java类,但它们数量达到了100个。
澄清一下,后端发送JSON,在我的代码中处理并且我需要将JSON发送回后端...虽然我不需要处理所有字段,但这并不意味着后端不需要它们。
我想将传入的JSON转换为POJO并在整个应用程序中使用它,并使用GSON将其序列化回JSON。
C#的JSON.NET库支持使用Json.Linq进行混合对象序列化。
C#示例。
class DataObject{
[JsonProperty("a")]
DataA A {get;set;}
[JsonProperty("b")]
DataB B {get;set;}
[JsonProperty("not-required-a")]
Json.Linq.JsonElement NotRequiredA {get;set;}
[JsonProperty("not-required-b")]
Json.Linq.JsonElement NotRequiredB; {get;set;}
}
在C#中,我不需要映射NotRequiredA和NotRequiredB字段,但当需要序列化时,它们会正确地进行序列化。
JSONObject
实例了吗?因为 JSON 中有什么并不重要,你总是可以只操作选定的字段。所以,没有必要创建一个“部分 JSON”来仅仅能够操作一些选定的字段。 - zeekhugeJSONObject
类,例如ServerResponse extends JSONObject
,并添加方法doThisWithA()
和doThisWithB()
来使其工作。 - zeekhuge