1

こんにちは、次の形式の JSON があります

{
"elements":[
        list1,
        list2,
        list3
    ]
}

list1、list2、list3 はすべて JavaScript 配列です。

これで、これを JavaScript ファイルからコントローラー (Spring MVC を使用) に渡すことができます。今、送信している JSON のデータを使用したいと考えています。これをモデル クラスにマップし、別の jsp ページに戻したいと考えています。まだモデルを作成していません。どうすればこれを取り除くことができますか?

助けてください。前もって感謝します。

4

4 に答える 4

2

Gsonを使用して、まず JSON データを表すクラス構造を作成する必要があるため、次のようなクラスを作成できます。

public class Response {
    private List<List<YourObject>> elements;
    //getter and setter
}

配列に含まれる型を指定しないため、クラスを使用することに注意してYourObjectください...たとえば、配列に文字列のみが含まれている場合はYourObjectString. 配列に別のオブジェクトが含まれている場合は、次のような JSON のデータを表すクラスを作成する必要があります。

public class YourObject {
    private String attribute1;
    private int attribute2;
    private boolean attribute3;
    //getters and setters
}

次に、JSON 応答を実際に解析するには、次のことを行うだけです。

Gson gson = new Gson();
Response response = gson.fromJson(yourJsonString, Response.class);

また、JSON データはクラス構造を埋めるために使用されるため、次のようにフィールドにアクセスできます。

String attribute1 = response.getElements().get(i).get(i).getAttribute1();
于 2013-06-11T13:59:07.847 に答える
2

GSONを使用して JSON を Java に変換する

YourModelClass obj= gson.fromJson(json, YourModelClass .class);   
于 2013-06-11T13:55:15.947 に答える
0

こんにちは、次のコードを使用しましたが、うまく機能しています。

Gson gson = new Gson();
    JsonParser jsonParser = new JsonParser();
    JsonArray jsonArray = jsonParser.parse(this.plan).getAsJsonArray();
    ArrayList<PlanJson> planJsonList = new ArrayList<PlanJson>();
    for(JsonElement jsonElement:jsonArray)
    {
        System.out.println(jsonElement);
        PlanJson planJson = gson.fromJson(jsonElement, PlanJson.class);
        planJsonList.add(planJson);
    }

私のjson構造で最も簡単に解決できることがわかりました。

于 2013-06-11T16:51:22.033 に答える
0

ジャクソンライブラリを使用できます。参照: http://jackson.codehaus.org/

例を次に示します: http://www.mkyong.com/java/how-to-convert-java-object-to-from-json-jackson/

package com.mkyong.core;

import java.io.File;
import java.io.IOException;
import org.codehaus.jackson.JsonGenerationException;
import org.codehaus.jackson.map.JsonMappingException;
import org.codehaus.jackson.map.ObjectMapper;

public class JacksonExample {
    public static void main(String[] args) {

    ObjectMapper mapper = new ObjectMapper();

    try {

        // read from file, convert it to user class
        User user = mapper.readValue(new File("c:\\user.json"), User.class);

        // display to console
        System.out.println(user);

    } catch (JsonGenerationException e) {

        e.printStackTrace();

    } catch (JsonMappingException e) {

        e.printStackTrace();

    } catch (IOException e) {

        e.printStackTrace();

    }

  }

}
于 2013-06-11T17:02:58.783 に答える