0

エラー: E/AndroidRuntime(2711): java.lang.IllegalStateException: 名前が必要ですが、STRING でした

assests の下のファイル (テスト) の内容:

[
  {
    "title": "baidu",
    "url": "http://www.baidu.com"
  }
]

解析コード:

new Thread(){
        @Override
        public void run()
        {
            try
            {
                InputStream is = MainActivity.this.getResources()
                                 .getAssets().open("test");
                InputStreamReader in = new InputStreamReader(is);
                JsonReader reader = new JsonReader(in);
                reader.beginArray();
                while(reader.hasNext())
                {
                    reader.beginObject();
                    while(reader.hasNext())
                    {
                        System.out.println(reader.nextName());
                    }
                    reader.endObject();
                }
                reader.endArray();
            }
            catch(IOException e)
            {
                e.printStackTrace();
            }
        }

    }.start();
4

2 に答える 2

0

この部分では:

while(reader.hasNext())
{
    System.out.println(reader.nextName());
}

プロパティの値ではなく、名前を使用するだけです。したがって、2 回目の繰り返しでは、値トークン (文字列) を取得し、それを名前として読み取ろうとします。

于 2013-11-10T06:10:04.973 に答える