2016-09-21 17 views
-1

私の問題は、オブジェクト番号1(01、Bill、50)と同じ値を持つDailyJobObjectsの3つの新しいインスタンスを作成することです。そしてそれはそうすることは理にかなっているので、私はどのようにしてjsonObjectを反復処理して3つのオブジェクトを分けることができますか?私はこれをずっと見てきましたが、私が見てきたすべてのものと配列はjsonDataに含まれていますが、これは簡単ですが、この応答Bodyはデータベースからまっすぐに来ています。イテレートするだけで、私のマップの半分を私に与えるために私が既に別の方法で行ったキーが与えられます。今私は値が必要です。あなたは私に答えを与える必要はありません、あなたは(私はむしろ)私が行方不明のものを指し示すことができます。ありがとう!配列を含まないJava jsonObjectsを繰り返します。

{"id":"01","name":"Bill","salary":"50"}, 
{"id":"02","name":"James","salary":"60"}, 
{"id":"03","name":"Ethan","salary":"70"} 

JSONObject fields = new JSONObject(jsonData); 

    mObjectArray = new DailyJobObjectArray[fields.length()]; 

    for(int i=0; i< fields.length(); i++) { 
     DailyJobObject mObject = new DailyJobObject(); 

     mObject.setName(fields.getString("name")); 
     mObject.setSalary(fields.getString("salary")); 

     mObjectArray[i] = mObject; 
    } 
    return mObjectArray; 
+0

1のようなものを探しているあなたのJSONが有効でないことに同意します'' DailyJobObject mObject = new DailyJobObject(); 'amdそして' mObject(...) 'はJavaで感覚的になりません – Selvin

+0

@Selvin jsonに関するプログラムが実行されます。それには問題ありません。私はちょうど私のAndroidモニターにあった私のjsonをコピーして貼り付けました。そしてDailyJobObjectは私が作成したカスタムクラスです。 – Addy75

+0

申し訳ありません私はちょうど編集しました。コピー&ペーストからいくつかのものが欠けていた。 – Addy75

答えて

0

@Selvinが述べたように、あなたのjsonは無効です。データベースから適切なjsonを取得するか、非標準的な方法で解析します。 DBから適切なjson配列を取得することをお勧めします。

String[] splitString = jsondata.split("[^a-zA-Z \\{\\}]+(?![^\\{]*\\})"); 
    for (String s : splitString) { 
     try { 
      JSONObject field = new JSONObject(s); 
      String name = field.getString("name"); 
      String id = field.getString("id"); 
     } catch (JSONException e) { 
      e.printStackTrace(); 
     } 

    } 

私はまた、あなたがmObject(...)は、すべての

では意味がありません。たぶん、あなたはこの

mObject.setName(name) 
+0

はい、私はコピーして貼り付けたとき、オブジェクトメソッドを忘れてしまったことをお詫びします。私はちょうど編集しました。また、私はモニターからコピーしたJsonが実行時に追加したエスケープ文字を持っていると仮定しています。私はちょうど編集した、私のポストが今より明確であるかどうか見て、私に知らせてください。ありがとう。 – Addy75

関連する問題