如何将数据列表转换为json

我想要以下json,其中List

将包含form_idform_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) { 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) { 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
forms = new ArrayList
(); 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中具有JSONfunction,您必须具有JSON-lib。 JSON-lib还需要以下“JAR”文件:

  1. 公地lang.jar

  2. 公地beanutils.jar

  3. 公地collections.jar

  4. 公共-logging.jar

  5. ezmorph.jar

  6. 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); } } 

要运行此示例,您必须按照以下几个步骤操作:

  • 下载JSON-lib jar和其他支持Jars

  • 将这些jar添加到类路径中

  • 创建并保存FirstJSONJava.java

  • 编译并执行它。