我想要以下json,其中List
List
form_id
form_name
{ "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实例即可。
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”文件: 公地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的完整示例代码如下:
现在,在本部分中,您将学习如何在Java中使用JSON。 要在java中具有JSONfunction,您必须具有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); } }
要运行此示例,您必须按照以下几个步骤操作: 下载JSON-lib jar和其他支持Jars 将这些jar添加到类路径中 创建并保存FirstJSONJava.java 编译并执行它。
要运行此示例,您必须按照以下几个步骤操作:
下载JSON-lib jar和其他支持Jars
将这些jar添加到类路径中
创建并保存FirstJSONJava.java
编译并执行它。