簡體   English   中英

如何將數據列表轉換為json

[英]how to convert a List of Data to json

我想要以下json,其中List<form>將具有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> 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”文件:

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

要運行此示例,您必須遵循以下幾個步驟:

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM