[英]how to convert a List of Data to json
我想要以下json,其中List<form>
将具有form_id
, form_name
列表,如何使用jsonobject进行转换,但我没有得到正确的json输出。 请帮我解决一下这个。 JSON:
{
"forms": [
{ "form_id": "1", "form_name": "test1" },
{ "form_id": "2", "form_name": "test2" }
]
}
上面是我需要一个列表的json结构。id,name是表单对象的列表
public static JSONObject getJsonFromMyFormObject(List<Form> form) {
JSONObject responseDetailsJson = new JSONObject();
JSONArray jsonArray = null;
System.out.println(form.size());
for (int i = 0; i < form.size(); i++) {
JSONObject formDetailsJson = new JSONObject();
formDetailsJson.put("form_id", form.get(i).getId());
formDetailsJson.put("form_name", form.get(i).getName());
jsonArray = new JSONArray();
jsonArray.add(formDetailsJson);
}
responseDetailsJson.put("form", jsonArray);
return responseDetailsJson;
}
面临的问题在这里无法获得列表输出
原始问题中的代码已接近实现所描述的预期结果。 只需将JSONArray
实例创建移出循环即可。
import java.util.ArrayList;
import java.util.List;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
public class Foo
{
public static JSONObject getJsonFromMyFormObject(List<Form> form)
{
JSONObject responseDetailsJson = new JSONObject();
JSONArray jsonArray = new JSONArray();
for (int i = 0; i < form.size(); i++)
{
JSONObject formDetailsJson = new JSONObject();
formDetailsJson.put("form_id", form.get(i).getId());
formDetailsJson.put("form_name", form.get(i).getName());
jsonArray.add(formDetailsJson);
}
responseDetailsJson.put("forms", jsonArray);
return responseDetailsJson;
}
public static void main(String[] args)
{
List<Form> forms = new ArrayList<Form>();
forms.add(new Form("1", "test1"));
forms.add(new Form("2", "test2"));
JSONObject jsonObject = getJsonFromMyFormObject(forms);
System.out.println(jsonObject);
}
}
class Form
{
String id;
String name;
Form(String i, String n)
{
id = i;
name = n;
}
String getId()
{
return id;
}
String getName()
{
return name;
}
}
适当地http://www.roseindia.net/tutorials/json/jsonobject-java-example.shtml会有所帮助。
根据Tushar的评论,以下是上述链接网站的摘录:
现在,在这一部分中,您将学习如何在Java中使用JSON。 要在Java中具有JSON功能,您必须具有JSON-lib。 JSON-lib还需要以下“ JAR”文件:
公地lang.jar
公地beanutils.jar
公地collections.jar
公共-logging.jar
ezmorph.jar
JSON-LIB-2.2.2-jdk15.jar
JSON-lib是一个Java库,用于将bean,集合,地图,java数组和XML转换为JSON,然后将其重新转换回bean,集合,地图等。 在此示例中,我们将使用JSONObject类创建JSONObject对象,然后将打印这些对象值。 为了使用JSONObject类,我们必须导入以下软件包“ net.sf.json”。 为了在这个对象中添加元素,我们使用了put()方法。 这是FirstJSONJava.java的完整示例代码如下:
FirstJSONJava.java
import net.sf.json.JSONObject;
public class FirstJSONJava
{
public static void main(String args[])
{
JSONObject object=new JSONObject();
object.put("name","Amit Kumar");
object.put("Max.Marks",new Integer(100));
object.put("Min.Marks",new Double(40));
object.put("Scored",new Double(66.67));
object.put("nickname","Amit");
System.out.println(object);
}
}
要运行此示例,您必须遵循以下几个步骤:
将这些罐子添加到您的类路径中
创建并保存FirstJSONJava.java
编译并执行。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.