博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android之Gson
阅读量:7013 次
发布时间:2019-06-28

本文共 3352 字,大约阅读时间需要 11 分钟。

{

"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();

  }  

  

 

转载地址:http://aamtl.baihongyu.com/

你可能感兴趣的文章
40.配置完善爬虫代码文件及图片下载文件重命名问题-1
查看>>
python学习日记 1
查看>>
C++基础之泛型算法
查看>>
BZOJ 4756 [Usaco2017 Jan]Promotion Counting
查看>>
QC托盘没有图标,运行QCTrayIcon.exe出错解决方案
查看>>
Windows核心编程02-记事本写代码深入理解cl.exe和link.exe
查看>>
HTML协议
查看>>
Win7、Ubuntu双系统正确卸载Ubuntu系统
查看>>
cocos2d-x JsonBox 读写
查看>>
服务器搭建3 安装libevent2.0.20
查看>>
jchdl-GSL-实例 - 使用Intellij IDEA创建Mux
查看>>
去掉‘为帮助保护您的安全,internet explorer已经限制此文件显示可能访问您的计算机的活动内容’提示...
查看>>
项目管理过程
查看>>
Access数据库中“所有记录中均未找到搜索关键字”的解决方法
查看>>
jQuery贪吃蛇--jQuery学习
查看>>
linux下开启ssh服务
查看>>
20模板方法模式TemplateMethod
查看>>
Windows Java配置环境变量【Java】
查看>>
jQuery插件之Cookie
查看>>
VMware与Centos系统安装
查看>>