5

編集:古いバージョンでは作業できなかったため、jsonファイルのスタイルを変更してシンプルにしました。Javaでターゲットの配列を作成できる必要があります。配列内の各要素には、Target_Nameの値として名前が付けられています。また、異なるオブジェクト名を持つ繰り返しのターゲット名をマージできる必要があります。したがって、基本的にはターゲット配列が必要であり、各要素内にType、Pin_number、および機能を保持するオブジェクトの配列が必要です。

ターゲットリストクラスを作成し、その変数内にターゲット名やその他すべてを作成する必要があるかもしれません。私は以前にそのようなことを試しましたが、それがどのように機能するかを理解するのに苦労しました。

    {
"Targets": [
    {
        "Target_Name": "----",
        "Object_Name": "----",
        "Type": "----",
        "Pin_Number": "----",
        "Capabilities": "----"
    },
    {
        "Target_Name": "----",
        "Object_Name": "----",
        "Type": "----",
        "Pin_Number": "----",
        "Capabilities": "----"
    },
    {
        "Target_Name": "----",
        "Object_Name": "----",
        "Type": "----",
        "Pin_Number": "----",
        "Capabilities": "----"
    },
    {
        "Target_Name": "----",
        "Object_Name": "----",
        "Type": "----",
        "Pin_Number": "----",
        "Capabilities": "----"
    }
]

}

4

1 に答える 1

2

これは非常に簡単です。以下は、ノードをロードして読み取る方法のコードです。データをクエリする方法を見つけるのに役立ちます。

Reader reader = null;
InputStream stream = context.getResources()
    .openRawResource(R.raw.json_file);
reader = new BufferedReader(new InputStreamReader(stream), 8092);

// parse json
JsonParser parser = new JsonParser();
JsonObject jsonObj = (JsonObject)parser.parse(reader);

//jsonの解析は次のようになります

JsonArray targets= jsonObj.getAsJsonArray("Targets");

List<Target> targetList = new ArrayList<Target>(); 
for (JsonElement target: targets) {

    JsonObject targetObject = target.getAsJsonObject();
    String targetName= targetObject.get("Target_Name").getAsString();
    ....//get the rest

    // create target object
    targetList.add(new Target(targetName, ....));
}

//値の読み取りとオブジェクトのクエリ方法の例

for (Entry<String, JsonElement> entry : rootElem.entrySet())
{
    int key = Integer.parseInt(entry.getKey());
    JsonObject jsonObject = entry.getValue().getAsJsonObject();
}


// get integer element
int key = Integer.parseInt(entry.getKey());

// get child object
JsonObject jsonObject = entry.getValue().getAsJsonObject();

// get string element           
String title = jsonObject.get("Object_Name").getAsString();
于 2012-08-09T00:09:19.397 に答える