0

この JSON を Java のオブジェクトに変換したい:

{
    "mapping": [
        {
            "boardPosition": {
                "row": 1,
                "col": 1
            },
            "nodeId": 3242324
        },
        {
            "boardPosition": {
                "row": 1,
                "col": 2
            },
            "nodeId": 432423
        },
        {
            "boardPosition": {
                "row": 1,
                "col": 3
            },
            "nodeId": 424324132
        }
    ]
}

これが私がJavaクラスを作成した方法です

class MapeoWumpus {
    public mapp mapping;

    }

class mapp{
    public boardP boardPosition;
    public String nodeId;
}

class boardP{
    public int row;
    public int col;

}

そして、このようにファイルを変換しようとすると

MapeoWumpus mapa=new MapeoWumpus();
mapa=gson.fromJson(filetext, MapeoWumpus.class);

null オブジェクトを取得します

私に何ができる?

編集:これは私のコード全体です:

package parserjson;

import java.io.FileNotFoundException;
import java.util.*;
import com.google.gson.*;

public class Main {

    /**
     * @param args
     */
    public static void main(String[] args) throws FileNotFoundException {
            String filetext;
            ParserJson parser=new ParserJson();
            Gson gson=new Gson();
            MapeoWumpus mapa=new MapeoWumpus();
            filetext=parser.leerArchivo("b1.json");
            mapa=gson.fromJson(filetext, MapeoWumpus.class);
    }

}

「leerArchivo」は、json ファイルを取得する方法にすぎません。json ファイルが文字列変数になっていることがわかります。

4

1 に答える 1

3

インスタンス変数mappを配列として定義する必要があります。JSON データにマッピング配列が含まれているように見えるためです。

class MapeoWumpus {
    public mapp[] mapping;

}

以下のコードで新しい MapeoWumpus を作成する必要はありません

MapeoWumpus mapa=new MapeoWumpus();
mapa=gson.fromJson(filetext, MapeoWumpus.class);

次のように変更するだけです

MapeoWumpus mapa=gson.fromJson(filetext, MapeoWumpus.class);
于 2012-07-03T01:53:43.187 に答える