• R/O
  • SSH
  • HTTPS

qr-code: Commit


Commit MetaInfo

Revisão101 (tree)
Hora2014-09-10 14:18:20
Autort-nakamura

Mensagem de Log

JSON取得部分についてのお試し実装です。

Mudança Sumário

Diff

--- tenki/trunk/src/otenki/Sample_API04/src/u/sample_api04/MainActivity.java (revision 100)
+++ tenki/trunk/src/otenki/Sample_API04/src/u/sample_api04/MainActivity.java (revision 101)
@@ -62,63 +62,27 @@
6262 Log.v("test", result);
6363 //System.out.println(result);
6464
65-
65+ Log.v("ログ","1");
66+ // JsonFactoryの生成
6667 try {
67- Log.v("ログ","1");
68- // JsonFactoryの生成
69- JsonFactory factory = new JsonFactory();
70- Log.v("ログ","2");
68+ JSONObject object = new JSONObject(result);
69+ Log.e("Test", object.toString());
7170
72-//////////////////////////////////////////////////////////////////////
73-//2014-09-09 【質問箇所】
74-//【質問①】
75-//createJsonParserを使用すべきではない、と出ています。
76-//使わないほうがいいのでしょうか。
77- JsonParser parser = factory.createJsonParser(result); //使うべきではないとは?
78- String STparser = ""+parser;
79- Log.v("ログ",STparser);
71+ JSONObject pref = object.getJSONObject("pref");
72+ JSONObject area = pref.getJSONObject("area");
73+ String id = area.getString("id");
74+ Log.e("Test", "id(" + id + ")");
75+ JSONArray infos = area.getJSONArray("info");
76+ for (int i = 0; i < infos.length(); i++) {
77+ JSONObject info = infos.getJSONObject(i);
78+ String date = info.getString("date");
79+ Log.e("Test", "date(" + date + ")");
80+ }
81+ } catch (JSONException e) {
82+ // TODO Auto-generated catch block
83+ e.printStackTrace();
84+ }
8085
81-//【質問②】
82-//入れ子になっている配列の取り出し方が解決できません。
83-//JsonArray?を使うようなのですが、色々試してみたのですが、
84-//どこにどう入れていいのかわかりませんでした。
85-
86- //JSONのパース処理
87- //データが終わるまでループ JsonToken.END_OBJECT はオブジェクト終了の"}"まで?
88- while (parser.nextToken() != JsonToken.END_OBJECT) {
89- String name = parser.getCurrentName(); //フィールド名を取得
90- if (name != null) { //フィールで名がnullでないとき
91- parser.nextToken(); //次のトークンに動かす
92- if (name.equals("link")) { //
93- System.out.println(name + ": "+ parser.getText());
94- } else if (name.equals("pref")) {
95- System.out.println(name + ": "+ parser.getText());
96- } else if (name.equals("area")) {
97-//【質問③】
98-//本来なら、"area:西部"と出力させたいが、"area:{"とでてしまう。
99-//"{"をスキップするにはどういう考えをすればいいのでしょうか。
100- System.out.println(name + ": "+ parser.getText());
101- } else if (name.equals("info")) {
102- System.out.println(name + ": "+ parser.getText());
103- } else if (name.equals("rainfallchance")) {
104- System.out.println(name + ": "+ parser.getText());
105- } else if (name.equals("unit")) {
106- System.out.println(name + ": "+ parser.getText());
107- } else if (name.equals("period")) {
108- System.out.println(name + ": "+ parser.getText());
109- } else {
110- //想定外のものは無視して次へ
111- parser.nextToken();
112- }
113- }
114- }
115- } catch (Exception e) {
116- Log.v("失敗","失敗");
117- e.getStackTrace();
118- }
119- //テキスト表示の場合
120- //text.setText(result);
121-
12286 }
12387
12488 }.execute();
Show on old repository browser