2012-08-09 14 views
5

編集:jsonファイルのスタイルを変更して、以前のバージョンでは使用できないようにしました。私は、配列の各要素がTarget_Nameの値としてその名前を持つjavaでターゲットの配列を作成できる必要があります。また、異なるオブジェクト名を持つ繰り返しのターゲット名を一緒にマージする必要があります。ですから、基本的には、ターゲット配列が必要です。各要素内に、Type、Pin_number、およびcapabilitiesを保持するオブジェクトの配列が必要です。gsonを使用してjsonファイルを解析するのに役立つ

私はターゲットリストクラスを作成しなければならないことがあります。私は以前のようなことをしようとしましたが、どのように動作するかを理解するのに苦労しました。

{ 
"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": "----" 
    } 
] 

}

+1

オブジェクト@CodeDroid。初心者以外の人にはそれを保存してもいいですか? –

答えて

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

//例を以下のように見えるために起こっていると、クエリは、暖かい歓迎は私の友人をStackOverflowのために何

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(); 
+0

ファイルはrawresourceではありません。私はGoogleのクラウドへのHTTP接続を持っており、jsonファイルへのURLを持っています。問題は、このファイルを解析し、後で使用するためにこれらの変数を保存することです。私はあなたが言及した他のものを実装しようとします。 – zms6445

+0

@ user1586194 jsonファイルのソースは何でも構いません。どこからでもReaderまたは単にStringに読み込んでJsonParser.parse()メソッドに渡すだけです。 – Maxim

+0

JsonParserとJsonObjectは、Android SDKに含まれているjsonクラスの一部ではありませんか? gsonには同等のものがありますか? – zms6445

関連する問題