2016-04-10 12 views
-4

Java android studioのJSONからString変数としてデータをロードします。 私のJSONは次のとおりです。好きなようにJSONデータをAndroid Java Stringに渡す

{ 
    "server_response": [ 
     { 
      "name": "1", 
      "email": "[email protected]", 
      "mobile": "990-100010000" 
     }, 
     { 
      "name": "2", 
      "email": "Tanim Khan ", 
      "mobile": "[email protected] " 
     }, 
     { 
      "name": "3", 
      "email": "Rezaul Hasan ", 
      "mobile": "[email protected] " 
     } 
    ] 
} 

そして、私のターゲット文字列のリスト:

String email[] = { 


      " Mirpur-13, Kafrul , Govt.Unani Medical College & Hospital, Dhaka", 
      " Sher-E-Bangla Nagar , Shaheed Sohrawardi Medicel College Hospital, Dhaka", 
      " Shahbag Square , Birdem General Hospital, Dhaka", 
      " Shahbag circle , BSMMU, Dhaka", 
      " Shaymoli bus stand , Dhaka Child Hospital, Dhaka", 
      " Bokshi Bazar, 100 Ramna , Dhaka Medical College Hospital, Dhaka", 
      " Nayabazar , Dhaka City General Hospital, Dhaka", 
      " Sher-E-Bangla Nagar , National Heart Institute & Hospital, Dhaka", 
      " Sher-E-Bangla Nagar, National Mental Health Institute & Hospital, Dhaka", 
      " Shayamoli, Sher-E-Bangla Nagar , National Ophthalmological Institute & Hospital, Dhaka", 
      " Mahakhali , National Cancer Research Institute & Hospital, Dhaka", 
      " Sher-E-Bangla Nagar , National Kidney Institute & Hospital, Dhaka", 
      " Sher-E-Bangla Nagar , National Orthopedics Hospital, Dhaka", 
      " Mirpur , Kidney Foundation Bangladesh, Dhaka", 
      " Mahakhali Kacha Bazar , ICDDRB, Dhaka"}; 



    String mobile[] = { 

      "02-8012048", 
      "02-9130800", 
      "02-8616641", 
      "02-9661051", 
      "02-8116061", 
      "02-8626812", 
      "02-7390860", 
      "02-9122560", 
      "02-9118171", 
      "02-9118336", 
      "02-9880078", 
      "02-91365560", 
      "02-9144190", 
      "02-8055827", 
      "02-8806523",}; 

は、今私は、すべての「電子メール」の製品[]配列にJSONのデータとを設定したい名前に「モバイル」 []配列。私はそれらの配列にデータを渡す方法を教えてください。

+1

ヘルプを求める前に、問題を解決するためにしたことを投稿してください。 – nhouser9

答えて

0

あなたは[here]からJSON Simpleを得ることができます。ここには[little tutorial]があります。

あなたがそれをダウンロードして、あなたのプロジェクトにjarファイルを追加したら、JSON-デコードメカニズムはこのようなものになるだろう...

String st = "{\"server_response\":[{\"name\":\"1\",\"email\":\"[email protected]\",\"mobile\":\"990-100010000\"},{\"name\":\"2\",\"email\":\"Tanim Khan \",\"mobile\":\"[email protected] \"},{\"name\":\"3\",\"email\":\"Rezaul Hasan \",\"mobile\":\"[email protected] \"}]}"; 
JSONParser parser = new JSONParser(); 
try { 
    Object o = parser.parse(st); 
    JSONObject obj = (JSONObject) o; 
    System.out.println(obj); // {"server_response":[{"name":"1","mobile":"990-100010000","email":"[email protected]"},{"name":"2","mobile":"[email protected] ","email":"Tanim Khan "},{"name":"3","mobile":"[email protected] ","email":"Rezaul Hasan "}]} 

    JSONArray arr = (JSONArray) obj.get("server_response"); 

    List<String> email = new ArrayList<String>(); 
    List<String> mobile = new ArrayList<String>(); 

    for (Object each: arr) { 
     JSONObject a = (JSONObject) each; 
     email.add(a.get("email").toString().trim()); 
     mobile.add(a.get("mobile").toString().trim()); 
    } 

    System.out.println(email); // [[email protected], Tanim Khan, Rezaul Hasan] 
    System.out.println(mobile); // [990-100010000, [email protected], [email protected]] 

} catch (org.json.simple.parser.ParseException e) { 
    e.printStackTrace(); 
} 

あなたはmobileリストは、電話番号以外のものが含まれていることに気づくかもしれません。これは、JSONデータがこのように見えるためです。

{ 
    "server_response": [ 
     { 
      "name": "1", 
      "email": "[email protected]", <--- good 
      "mobile": "990-100010000"   <--- good 
     }, 
     { 
      "name": "2", 
      "email": "Tanim Khan ",   <--- not good 
      "mobile": "[email protected] "  <--- not good 
     }, 
     { 
      "name": "3", 
      "email": "Rezaul Hasan ",   <--- not good 
      "mobile": "[email protected] "  <--- not good 
     } 
    ] 
} 

JSONデータを最初に修正することをお勧めします。 "Rezaul Hasan "は本当にメールIDではなく、"[email protected] "は実際に携帯電話番号ではありません。

ご質問がある場合はお知らせください。 :)

+0

文字列st = ""; JSONParserパーサ=新しいJSONParser(); もし私がPHPのURLからjsonをロードしたいのであれば、私はここで何をしていますか?助けてください:) – Istiyak

+0

@ Istiyak私はあなたが何を意味するか、またはこのPHPファイルがどのように動作するかについて完全にはっきりしていません。私はあなたの問題に最善を尽くすために新しい質問を書くことをお勧めします。 –

+0

あなたの答えは正しいです。 実際に私は私のプロジェクトのカスタムリストビューを作成し、アイテムリストの値としてString値を使用しています。これでjsonをphpでエンコードし、その文字列値にjsonデータを保存したいので、webからjsonをロードします。 私はただWebからJSONを解析してカスタムリストビューシステムを作りたいと思っています。 – Istiyak

0

あなたは地図(または任意のJavaビーン)にJSONをデシリアライズするGsonライブラリを使用して、電子メールや携帯電話番号のリストを読み込むことができ、例えば:

Gson gson = new Gson(); 
Map<String, Object> data = gson.fromJson("{\"server_response\": [{ \"name\": \"1\", \"email\": \"[email protected]\", \"mobile\": \"990-100010000\"}, { \"name\": \"2\", \"email\": \"Tanim Khan \", \"mobile\": \"[email protected] \"}, { \"name\": \"3\", \"email\": \"Rezaul Hasan \", \"mobile\": \"[email protected] \"}]}", Map.class); 
List<Map<String, Object>> list = (List<Map<String, Object>>) data.get("server_response"); 
List<String> emails = new ArrayList<>(); 
List<String> numbers = new ArrayList<>(); 
for(Map<String, Object> element : list){ 
    emails.add(element.get("email").toString().trim()); 
    numbers.add(element.get("mobile").toString().trim()); 
} 
System.out.println(emails); 
System.out.println(numbers); 
+0

Map data = gson.fromJson(); ここで私はPHPのURLからjsonをロードしたいのですが、その場合はどうしますか? :) – Istiyak

関連する問題