Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Java将方便的Json与子集合序列化?_Java_Json_Gson - Fatal编程技术网

如何使用Java将方便的Json与子集合序列化?

如何使用Java将方便的Json与子集合序列化?,java,json,gson,Java,Json,Gson,我希望通过以下方式构建json: {"total":1,"rows":[{"id":1,"name":"Chai","price":18.00}],"footer":[{"name":"Total","price":18.00}]} 该示例来自: 我必须有一个具有某个值的total属性和一个具有引用它的集合的rows属性,正如上面的示例所示 考虑一下,对于rows属性,实际上我在列表集合中有一组java属性类对象,其中包含id、name和price的值对 注意:我正在使用GSon对一组属性进行

我希望通过以下方式构建json:

{"total":1,"rows":[{"id":1,"name":"Chai","price":18.00}],"footer":[{"name":"Total","price":18.00}]}
该示例来自:

我必须有一个具有某个值的total属性和一个具有引用它的集合的rows属性,正如上面的示例所示

考虑一下,对于rows属性,实际上我在列表集合中有一组java属性类对象,其中包含id、name和price的值对

注意:我正在使用GSon对一组属性进行字符串化,但无法正确地为该UI生成有效的json

代码:


谢谢

您试图生成的JSON

{"total":1,"rows":[{"id":1,"name":"Chai","price":18.00}],"footer":[{"name":"Total","price":18.00}]}
是一个JSON对象。因此,不能使用数组

Object[][] array = {
        {"total",qty},
        {"rows", lp}
};
生成它

相反,创建一个POJO类,其中包含您想要的每个JSON名称/值对的字段。一个用于表示数字的总计,一个用于表示属性数组/列表的行,另一个用于表示其他对象的页脚


然后,您可以创建一个对象,初始化其字段,并使用Gson或其他JSON序列化程序对其进行序列化。

我不知道如何创建一组属性,其中已经存在的属性列表将转换为有效的JSON,以便实现UI所需的格式。我曾尝试使用数组来执行此操作,但生成的Json使用了错误的方括号,我怀疑在interface对象中没有正确呈现。如果您展示了您所尝试的,人们会更愿意帮助你,而不是试图从头开始为你设计一个答案。@pennstatephil:code补充道。它不是你想要的作为根JSON的数组,而是一个对象。只需创建一个POJO来容纳所有这些字段。@SotiriosDelimanolis,它成功了。如果你能给出答案,我会接受的。在这个问题之前,我曾考虑过创建一个POJO,但由于我不想有过多的类,所以我尝试了其他方法。但最后,这确实是最简单、更优雅的方式。谢谢你的提示!
{"total":1,"rows":[{"id":1,"name":"Chai","price":18.00}],"footer":[{"name":"Total","price":18.00}]}
Object[][] array = {
        {"total",qty},
        {"rows", lp}
};