现在的位置: 首页 > 综合 > 正文

Android之Gson

2012年11月07日 ⁄ 综合 ⁄ 共 4422字 ⁄ 字号 评论关闭

{

"id": 912345678901,

"age": 33, 

"text": "How do I stream JSON in Java?",

"geo": null,
 }

红色部分如果表示有可能为null,则在判断的时候需要如下name.equals("geo")&& reader.peek() != JsonToken.NULL

橙色部分要是想不解析其中的Json字段,需要在判断的时候加上一个else语句如下:else{reader.skipValue()} 

 

然后是一些例子,都是Json的各种组合形式,不定时更新 

1. 现实Json数据,后面每一个都是如此不再做任何的解析了,然后跟着就是对应的代码内容

 {

     "id": 912345678901,
     "text": "How do I stream JSON in Java?",
     "geo": null,
     "user": {
       "name": "json_newb",
       "followers_count": 41
      }
}
    reader.beginObject();
            while (reader.hasNext()) {
                String name = reader.nextName();
                if (name.equals("id")) {
                    System.out.println("id:" + reader.nextLong());
                } else if (name.equals("text")) {
                    System.out.println("text:" + reader.nextString());
                } else if (name.equals("geo") && reader.peek() != JsonToken.NULL) {
                    System.out.println("text:" + reader.nextString());
                } else if (name.equals("user")) {
                    usernameObject();
                } else {
                    reader.skipValue();
                }
            }
            reader.endObject();

private void usernameObject() throws IOException{
        reader.beginObject();
        while (reader.hasNext()) {
            String nxtName = reader.nextName();
            if (nxtName.equals("name")) {
                System.out.println("nxtName:" + reader.nextString());
            } else if (nxtName.equals("followers_count")) {
                System.out.println("nxtName:" + reader.nextInt());
            }

}  

        

2.

[
{
     "id": 912345678901,
     "text": "How do I stream JSON in Java?",
     "geo": null,
     "user": {
       "name": "json_newb",
       "followers_count": 41
      }
},
{
     "id": 777777777888,
     "text": "dfngsdnglnsldfnsl",
     "geo": null,
     "user": {
       "name": "dsfgpd",
       "followers_count": 24
      }
}

reader.beginArray();
        while(reader.hasNext()){
            reader.beginObject();
            while (reader.hasNext()) {
                String name = reader.nextName();
                if (name.equals("id")) {
                    System.out.println("id:" + reader.nextLong());
                } else if (name.equals("text")) {
                    System.out.println("text:" + reader.nextString());
                } else if (name.equals("geo") && reader.peek() != JsonToken.NULL) {
                    System.out.println("text:" + reader.nextString());
                } else if (name.equals("user")) {
                    usernameObject();
                } else {
                    reader.skipValue();
                }
            }
            reader.endObject();
        }

reader.endArray();  

        

3. 

{
"statuses":[
{
      "id": 912345678901,
      "text": "How do I stream JSON in Java?",
      "geo": null,
      "user": {
        "name": "json_newb",
        "followers_count": 41
      }
      },
     
{
      "id": 777777777888,
      "text": "dfngsdnglnsldfnsl",
      "geo": null,
      "user": {
        "name": "dsfgpd",
        "followers_count": 24
      }
      }
     ]

reader.beginObject();
        while(reader.hasNext())
        { 
            String begin = reader.nextName();
            if(begin.equals("statuses"))
            {
                array();
            }
        }
        reader.endObject();

private void array() throws IOException{
        reader.beginArray();
        while(reader.hasNext()){
            reader.beginObject();
            while (reader.hasNext()) {
                String name = reader.nextName();
                if (name.equals("id")) {
                    System.out.println("id:" + reader.nextLong());
                } else if (name.equals("text")) {
                    System.out.println("text:" + reader.nextString());
                } else if (name.equals("geo") && reader.peek() != JsonToken.NULL) {
                    System.out.println("text:" + reader.nextString());
                } else if (name.equals("user")) {
                    usernameObject();
                } else {
                    reader.skipValue();
                }
            }
            reader.endObject();
        }
        reader.endArray();
    }

private void usernameObject() throws IOException{
        reader.beginObject();
        while (reader.hasNext()) {
            String nxtName = reader.nextName();
            if (nxtName.equals("name")) {
                System.out.println("nxtName:" + reader.nextString());
            } else if (nxtName.equals("followers_count")) {
                System.out.println("nxtName:" + reader.nextInt());
            }
        }
        reader.endObject();

  }  

  

 

抱歉!评论已关闭.