Gjson的用法-简单几步解析json数据

只需要简单几个步骤,只需要demo中的DynamicBean和ReadJsonFile和Root和MainActivity类就够了。就可以解析Dynamic.jsonl了你就可以自如的读取Json文件了,
步骤1,将json文件复制到“JSON字符串转换成Java实体类(POJO)”的工具中,将json转换为JavaBean
步骤2,复制你转换的javabean到你的工程中,建立对应的java类
步骤3,建立读取json文件的将json转换为string的类。

package com.example.huanglimei.myapplication;

import android.content.Context;
import android.content.res.AssetManager;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

/**
 * Created by huanglimei on 2017/11/10.
 */

public class ReadJsonFile {
    public static String getJson(String fileName,Context context) {
        //将json数据变成字符串
        StringBuilder stringBuilder = new StringBuilder();
        try {
            //获取assets资源管理器
            AssetManager assetManager = context.getAssets();
            //通过管理器打开文件并读取
            BufferedReader bf = new BufferedReader(new InputStreamReader(
                    assetManager.open(fileName)));
            String line;
            while ((line = bf.readLine()) != null) {
                stringBuilder.append(line);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
        return stringBuilder.toString();
    }
}

步骤4:编写主类获取json的具体数据

public class MainActivity extends AppCompatActivity {
   // private Context mContext;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        String json;//获取json文件为string
         //DynamicBean dynamicBean;
        Gson gson = new Gson();
      //读取json文件
        json=ReadJsonFile.getJson("dynamic.json",MainActivity.this);
          Root root=gson.fromJson(json,Root.class);
      //注意root为生成的javabean中的根类
         root.getDynamic().get(1).getUsername();
        Toast.makeText(this,root.getDynamic().get(1).getUsername(), Toast.LENGTH_SHORT).show();
    //   dynamicBean=gson.fromJson(jsonStr,type);
      //  dynamicBean.getUsername().length();
        //将Java集合转换为json
      //  String json2 = gson.toJson(List);        System.out.println(json2);
    }
}

必须要用根类才可以获取数据
json数据如下:

{"dynamic":[
  {
    "username":"燕潇洒",
    "createTime":"04-23 13:12",
    "commentNum":"45",
    "content":"喔喔喔",
    "headIcon":"http://img2.imgtn.bdimg.com/it/u=1576185143,2361770572&fm=214&gp=0.jpg",
    "images":"http://img4.imgtn.bdimg.com/it/u=3776739438,757564394&fm=214&gp=0.jpg",
    "level":"公告",
    "priseNum":"23"
  },
  {
    "username":"徐金杰",
    "createTime":"04-23 13:12",
    "commentNum":"45",
    "content":"哩哩里",
    "headIcon":"http://img4.duitang.com/uploads/item/201508/17/20150817142843_4smWc.jpeg",
    "images":"http://pic.58pic.com/58pic/13/70/90/29358PICQjG_1024.jpg",
    "level":"公告",
    "priseNum":"43"
  },{
    "username":"宋亮亮",
    "createTime":"04-23 13:12",
    "commentNum":"23",
    "content":"咕咕咕",
    "headIcon":"http://img2.imgtn.bdimg.com/it/u=1576185143,2361770572&fm=214&gp=0.jpg",
    "images":"http://img1.3lian.com/2015/w7/85/d/21.jpg",
    "level":"重要",
    "priseNum":"12"
  },
  {
    "username":"唐梦茹",
    "createTime":"04-23 13:12",
    "commentNum":"450",
    "content":"喵喵喵",
    "headIcon":"http://img4.duitang.com/uploads/item/201508/17/20150817142843_4smWc.jpeg",
    "images":"http://img4.imgtn.bdimg.com/it/u=3776739438,757564394&fm=214&gp=0.jpg",
    "level":"公告",
    "priseNum":"345"
  },{
    "username":"米述林",
    "createTime":"04-23 13:12",
    "commentNum":"333",
    "content":"咪咪咪",
    "headIcon":"http://www.haopic.me/wp-content/uploads/2015/12/2015122808171644.jpg",
    "images":"http://img1.3lian.com/2015/w7/85/d/21.jpg",
    "level":"重要",
    "priseNum":"323"
  },{
    "username":"冯大双",
    "createTime":"04-23 13:12",
    "commentNum":"322",
    "content":"么么哒",
    "headIcon":"http://img.bitscn.com/upimg/allimg/c160120/1453262U560940-A5c.jpg",
    "images":"http://img1.3lian.com/2015/w7/85/d/21.jpg",
    "level":"重要",
    "priseNum":"222"
  },{
    "username":"施伟",
    "createTime":"04-23 13:12",
    "commentNum":"12",
    "content":"啦啦啦",
    "headIcon":"http://www.haopic.me/wp-content/uploads/2015/12/2015122808171644.jpg",
    "images":"http://img1.hq2011.com/uploads/allimg/150131/0122205Y4-0.jpg",
    "level":"公告",
    "priseNum":"4"
  },{
    "username":"宋佳利",
    "createTime":"04-23 15:45",
    "commentNum":"23",
    "content":"呵呵呵",
    "headIcon":"http://scimg.jb51.net/allimg/170330/2-1F3301636200-L.jpg",
    "images":"http://img1.3lian.com/2015/w7/85/d/21.jpg",
    "level":"公告",
    "priseNum":"12"
  },{
    "username":"杨永刚",
    "createTime":"04-23 13:16",
    "commentNum":"12",
    "content":"嘻嘻嘻",
    "headIcon":"http://www.qqw21.com/article/UploadPic/2016-2/20162192155654059.jpg",
    "images":"http://img1.hq2011.com/uploads/allimg/150131/0122205Y4-0.jpg",
    "level":"公告",
    "priseNum":"1"
  },{
    "username":"程森然",
    "createTime":"04-22 14:12",
    "commentNum":"22",
    "content":"哈哈哈",
    "headIcon":"http://img2.imgtn.bdimg.com/it/u=1576185143,2361770572&fm=214&gp=0.jpg",
    "images":"http://pic.58pic.com/58pic/13/70/90/29358PICQjG_1024.jpg",
    "level":"重要",
    "priseNum":"23"
  }
]

}

生成的javabean如下:

package com.example.huanglimei.myapplication;

import java.util.List;

/**
 * Created by huanglimei on 2017/11/10.
 */
public class Root {
    private List<DynamicBean> dynamic ;

    public void setDynamic(List<DynamicBean> dynamic){
        this.dynamic = dynamic;
    }
    public List<DynamicBean> getDynamic(){
        return this.dynamic;
    }

}
package com.example.huanglimei.myapplication;

/**
 * Created by huanglimei on 2017/11/20.
 */

public class DynamicBean {
    private String username;

    private String createTime;

    private String commentNum;

    private String content;

    private String headIcon;

    private String images;

    private String level;

    private String priseNum;

    public void setUsername(String username){
        this.username = username;
    }
    public String getUsername(){
        return this.username;
    }
    public void setCreateTime(String createTime){
        this.createTime = createTime;
    }
    public String getCreateTime(){
        return this.createTime;
    }
    public void setCommentNum(String commentNum){
        this.commentNum = commentNum;
    }
    public String getCommentNum(){
        return this.commentNum;
    }
    public void setContent(String content){
        this.content = content;
    }
    public String getContent(){
        return this.content;
    }
    public void setHeadIcon(String headIcon){
        this.headIcon = headIcon;
    }
    public String getHeadIcon(){
        return this.headIcon;
    }
    public void setImages(String images){
        this.images = images;
    }
    public String getImages(){
        return this.images;
    }
    public void setLevel(String level){
        this.level = level;
    }
    public String getLevel(){
        return this.level;
    }
    public void setPriseNum(String priseNum){
        this.priseNum = priseNum;
    }
    public String getPriseNum(){
        return this.priseNum;
    }

}

Demo下载链接

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,390评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,821评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,632评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,170评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,033评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,098评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,511评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,204评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,479评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,572评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,341评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,213评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,576评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,893评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,171评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,486评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,676评论 2 335

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,495评论 18 139
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,050评论 25 707
  • 你每天早起跑5公里,结果瞌睡一上午,为毛呢? 你每天背英语,结果生活中除了看美剧可以听懂几句对白,为毛呢? 你每天...
    夏雨冬橙SRWO阅读 227评论 0 0
  • “嗨!我也在看欢乐颂。”最近这一句话闺蜜们就可以聊上好半天。 五个类型的女孩子,每个人都会自动带入,我觉得你像小曲...
    AK四七阅读 263评论 3 2
  • 你给我隐秘的快乐。
    蓝湛的湛阅读 135评论 0 0