イテレーターを使わないとJSONが解析できないことに気がついた

JSONでキーがあらかじめわかっていれば、使うのは簡単だった。

でもキーがわからないときはどうすればいいのか?

以下のとおり。

            JSONObject menuJson = new JSONObject(MENU_JSON);
            Iterator<?> keys = menuJson.keys();

            Log.d(TAG, "keys= " + keys.hasNext());

            while (keys.hasNext()) {
                String key = (String) keys.next();
                Log.d(TAG, "" + key);

                JSONObject j = new JSONObject(menuJson.getString(key));
                Iterator<?> keyss = j.keys();

                while (keyss.hasNext()) {

                    String keyy = (String) keyss.next();
                    Log.d(TAG, "" + keyy);

                }

            }

下がミソじゃの

while (keys.hasNext()) {
                String key = (String) keys.next();
}

Googleスプレッドシートを利用したGASのAPIを誰でも使えるようにする

Googleスプレッドシートを利用したGASのAPIを誰でも使えるようにしたかったんだけど、なかなか難しい。

解決策として、スプレッドシート内で作成したものを公開するのではなく、

Googleドライブ上に

スクリーンショット 2016-03-09 18.11.37

みたいな感じでスクリプトファイル自体を作成できるようにして、そこで新たにスクリプトを書く。

そのスクリプトをウェブアプリケーションとして公開!とやると、簡単に行けた。

どこからでもアクセスできるAPIができました。

Googleスプレッドシートは、スマホからでも簡単に更新できるため、かなりの利用幅が効くようになると思います。

【Android】【超初心者用】JSONを少し作ってみる

ほんっと、みんな複雑に説明するの好きよね。頭いかれてる。

すこーしずつやってみていいやんか。

というわけで少しづつJSONを作ってみるから。ああ、あとさ。「作ってみる」を「作成」とかそういう風に難しく言うのも好きじゃない。頭いかれてる。 てめーだよ、てめー。

JSONObject jsonObject = new JSONObject();
String name = "いやんばかん";
jsonObject.put("name", name);
return jsonObject;

まず、こうする。自分の予想的には立派なJSONが出てくるだろうと思ってる、しかし

jsonObject.put(“name”, name);
ここでエラーでます。1時間苦しむ。

答え↓

JSONObject jsonObject = new JSONObject();
String name = "いやんばかん";
try {
   jsonObject.put("name", name);
} catch (JSONException e) {
   e.printStackTrace();
}
return jsonObject;

try – catch で囲むとでません。腹たつよね。原辰徳だよね。知ってて当然みたいな顔するやつは教えるの向いてないことを自覚したほうがいいです。

実行します。

文字列で見れません。作成したJSONを見て「わーい!」ちょっとの一歩だけど大いなる一歩だ!ってやりたいのに。

return jsonObject;
ここをこうします。

return jsonObject.toString();
全体をみるとこういうメソッドにしてます。

public String jsonTest() {
   JSONObject jsonObject = new JSONObject();
   String name = "いやんばかん";
   try {
      jsonObject.put("name", name);
   } catch (JSONException e) {
      e.printStackTrace();
   }
   return jsonObject.toString();
}

で、

Log.v(“AAA”, “jsonTest= ” + jsonTest());
これを実行するとぉおおお

V/AAA: jsonTest= {“name”:”いやんばかん”}

こういうのがログに出力されました、ひゃっほー。

つまり

name という入れ物に いやんばかん が入ってるという事だと理解する。

【Android】【超初心者用】JSONを少し作ってみる2

public String jsonTest() {

   JSONObject jsonObject = new JSONObject();
   String name = "いやんばかん";
   String monku = "くたばれ!";
   try {
      jsonObject.put("name", name);
      jsonObject.put("monku", monku);
   } catch (JSONException e) {
      e.printStackTrace();
   }
   return jsonObject.toString();

}

これを

Log.v(“AAA”, “jsonTest= ” + jsonTest());
で実行してみたらどうかしら?

V/AAA: jsonTest= {“name”:”いやんばかん”,”monku”:”くたばれ!”}

こうなる。イエェア!!! 以下、整形。

{
“monku”: “くたばれ!”,
“name”: “いやんばかん”
}

カテゴリー: JSON

【Android】【超初心者用】JSONを少し作ってみる3

public String jsonTest() {

   JSONObject jsonObject = new JSONObject();
   
   String name = "いやんばかん";

   ArrayList hako = new ArrayList();
   hako.add(name);

   try {
      jsonObject.put("name", hako);
   } catch (JSONException e) {
      e.printStackTrace();
   }
   return jsonObject.toString();

}

さて、ここから。hakoというリストを作って、そこに いやんばかん をいれる。

V/AAA: jsonTest= {“name”:”[いやんばかん]”}
こうなる。なんだよ、この [ ] は?誰に断ってつけてんだ?

2回いれてみる。

public String jsonTest() {

   JSONObject jsonObject = new JSONObject();

   String name = "いやんばかん";

   ArrayList hako = new ArrayList();
   hako.add(name);
   hako.add(name);

   try {
      jsonObject.put("name", hako);
   } catch (JSONException e) {
      e.printStackTrace();
   }
   return jsonObject.toString();

}

こうなる。

V/AAA: jsonTest= {“name”:”[いやんばかん, いやんばかん]”}
ほほう。

[ ] はリストの事のようだな、、、。