• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >Android > JSON解析,json在线解析

JSON解析,json在线解析

作者:网友 字体:[增加 减小] 来源:互联网 时间:2017-05-26

网友通过本文主要向大家介绍了json在线解析,json在线解析器,json在线解析工具,json在线解析格式化,json数据在线解析等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

JSON解析,json在线解析


1.API

Xxx getXxx(int index) : 根据下标得到json数组中对应的元素数据
Xxx optXxx(int index) : 根据下标得到json数组中对应的元素数据
注意:
optXxx方法会在对应的key中的值不存在的时候返回一个空字符串或者返回你指定的默认值,但是getString方法会出现空指针异常的错误。

 

2.特殊json数据解析

{
    "code": 0,
    "list": {
        "0": {
            "aid": "6008965",
            "author": "哔哩哔哩番剧",
            "coins": 170,
            "copyright": "Copy",
            "create": "2016-08-25 21:34"
        },
        "1": {
            "aid": "6008938",
            "author": "哔哩哔哩番剧",
            "coins": 404,
            "copyright": "Copy",
            "create": "2016-08-25 21:33"
        }
    }
}

 

public class FilmInfo {

    private int code;
    private List<FilmBean> list;
    public static class FilmBean{
        private String aid;
        private String author;
        private int coins;
        private String copyright;
        private String create;
    }
}

  

 // 创建封装的Java对象
FilmInfo filmInfo = new FilmInfo();
// 2 解析json
try {
	JSONObject jsonObject = new JSONObject(json);
	// 第一层解析
	int code = jsonObject.optInt("code");
	JSONObject list = jsonObject.optJSONObject("list");
	// 第一层封装
	filmInfo.setCode(code);
	List<FilmInfo.FilmBean> lists = new ArrayList<>();
	filmInfo.setList(lists);
// 第二层解析 for (int i = 0; i < list.length(); i++) { JSONObject jsonObject1 = list.optJSONObject(i + ""); if(jsonObject1 != null) { String aid = jsonObject1.optString("aid"); String author = jsonObject1.optString("author"); int coins = jsonObject1.optInt("coins"); String copyright = jsonObject1.optString("copyright"); String create = jsonObject1.optString("create"); // 第二层数据封装 FilmInfo.FilmBean filmBean = new FilmInfo.FilmBean(); filmBean.setAid(aid); filmBean.setAuthor(author); filmBean.setCoins(coins); filmBean.setCopyright(copyright); filmBean.setCreate(create); lists.add(filmBean); } } } catch (JSONException e) { e.printStackTrace(); }

  

3.Gson框架技术

(1)将json格式的字符串{}转换为Java对象
    API:
    fromJson(String json, Class<T> classOfT);

步骤
1)将Gson的jar包导入到项目中
2)创建Gson对象 :
Gson gson = new Gson();
3)通过创建的Gson对象调用fromJson()方法,返回该JSON数据对应的Java对象:
ShopInfo shopInfo = gson.fromJson(json, ShopInfo.class);

 

Gson gson = new Gson();
ShopInfo shopInfo = gson.fromJson(json, ShopInfo.class);

(2)将json格式的字符串[]转换为Java对象的List
    API:
    fromJson(String json, Type typeOfT);

Gson gson = new Gson();
List<ShopInfo> shops = gson.fromJson(json, new TypeToken<List<ShopInfo>>() {}.getType());

(3)将Java对象转换为json字符串{}
    API:
    String toJson(Object src);

// 1 获取或创建Java对象
ShopInfo shopInfo = new ShopInfo(1,"鲍鱼",250.0,"baoyu");
// 2 生成JSON数据
Gson gson = new Gson();
String json = gson.toJson(shopInfo);

(4)将Java对象的List转换为json字符串[]

    API:
    String toJson(Object src);

 // 1 获取或创建Java对象
List<ShopInfo> shops = new ArrayList<>();
ShopInfo baoyu = new ShopInfo(1, "鲍鱼", 250.0, "baoyu");
ShopInfo longxia = new ShopInfo(2, "龙虾", 251.0, "longxia");

shops.add(baoyu);
shops.add(longxia);

// 2 生成JSON数据
Gson gson = new Gson();
String json = gson.toJson(shops);

 

4.FastJson框架技术
(1)将json格式的字符串{}转换为Java对象
  API:
  parseObject(String json, Class<T> classOfT);

ShopInfo shopInfo = JSON.parseObject(json, ShopInfo.class);

(2)将json格式的字符串[]转换为Java对象的List
  API:
  List<T> parseArray(String json,Class<T> classOfT);

List<ShopInfo> shopInfos = JSON.parseArray(json, ShopInfo.class);

(3)将Java对象转换为json字符串{}
API:
String toJSONString(Object object);
步骤:
  1)导入fastjson的jar包
  2)JSON调用toJSONString()方法,获取转换后的json数据
例如:

ShopInfo shopInfo = new ShopInfo(1, "鲍鱼", 250.0, "baoyu");
String json = JSON.toJSONString(shopInfo);

(4)将Java对象的List转换为json字符串[]
  API:
  String toJSONString(Object object);

List<ShopInfo> shops = new ArrayList<>();
ShopInfo baoyu = new ShopInfo(1, "鲍鱼", 250.0, "baoyu");
ShopInfo longxia = new ShopInfo(2, "龙虾", 251.0, "longxia");
shops.add(baoyu);
shops.add(longxia);
String json = JSON.toJSONString(shops);

  

 

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • JSON解析,json在线解析
  • Json解析工具的选择,Json解析工具选择
  • 解析BroadcastReceiver之你需要了解的一些东东,broadcastreceiver
  • JSON解析,json在线解析

相关文章

  • 2017-05-26AndroidStudio下使用 RecyclerView xml文件不显示预览条目并报错类似:NoClassDefFoundError 问题解决,studiorecyclerview
  • 2017-05-26玩转Android---事件监听篇---第2篇,android---第2篇
  • 2017-05-26java.lang.IllegalArgumentException: Illegal character in query at index 261,
  • 2017-05-26Android性能优化之Bitmap的内存优化
  • 2017-05-26Android多分辨率适配实践【1】使用字体图标(内含两枚神器),android两枚
  • 2017-05-26高仿it之家新闻客户端源码,高仿it之家源码
  • 2017-07-23WKWebView与js交互之完美解决方案
  • 2017-05-26【lushengduan】03、点击事件的四种实现方式,lushengduan03
  • 2017-05-26mysql字符集乱码问题
  • 2017-05-26把一张图缩小放到另一张背景图上。,一张背景图

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 7.1.2 Android Http请求头与响应头的学习
    • 回收ImageView占用的图像内存,imageview占用图像
    • Android安全专项之Xposed劫持用户名密码实践
    • Fragment 重叠 遮盖问题,fragment遮盖
    • 利用bintray-release插件上传到Bintray- HTTP/1.1 404 Not Found [message:Repo &#39;maven&#39; was not found]问题解决,bintrayrelease
    • 《转》深入理解Activity启动流程(一)–Activity启动的概要流程,《转》activity
    • [AndroidAnnotations框架]AndroidAnnotations的配置介绍
    • android小知识点代码片段
    • 使用phonegap播放音频,phonegap播放音频
    • android布局不带参数返回,android布局参数

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有