Android数据解析——JSON

示例一:

有这样一个JSON需要解析,比如:

{
"thresholds": {
"1e-3": 65.3,
"1e-5": 76.5,
"1e-4": 71.8
}
}

希望得到对应的实体类对象。

经过观察,这是一个key-value键值对形式的json字符串,所以定义一个HashMap<String,Double>,然后对其进行反序列化即可。我们使用Gson来进行解析。

在Android Studio中导入jar包,需要两步:

1、在Android Studio中将项目视图切换到Project视图,然后将jar包复制到对应的libs目录下。

2、然后在Android Studio中右键,弹出的菜单中选择Add as Library...

最终会在gradle中添加对应配置。

代码:

 public class Data {
     public HashMap<String,Double> thresholds;
 }
 Gson gson = new Gson();
 String json = "{\n" +
                "\"thresholds\": {\n" +
                "\"1e-3\": 65.3,\n" +
                "\"1e-5\": 76.5,\n" +
                "\"1e-4\": 71.8\n" +
                "}\n" +
                "}";
 Data data = gson.fromJson(json, Data.class);

最终得到的data就是我们要的实体类对象。

 

示例二:

有这样一个JSON需要解析,比如:

{
"category": [
"iOS",
"Android",
"瞎推荐",
"拓展资源",
"福利",
"休息视频"
],
"error": false,
"results": {
"Android": [
{
"_id": "56cc6d23421aa95caa707a69",
"createdAt": "2015-08-06T07:15:52.65Z",
"desc": "类似Link Bubble的悬浮式操作设计",
"publishedAt": "2015-08-07T03:57:48.45Z",
"type": "Android",
"url": "https://github.com/recruit-lifestyle/FloatingView",
"used": true,
"who": "mthli"
}
]
}
}

代码:

public class Data {
    public String[] category;
    public boolean error;
    public Results results;
}
public class Results {
    public Android []Android;
}
public class Android {
    public String _id;
    public String createdAt;
    public String desc;
    public String publishedAt;
    public String type;
    public String url;
    public boolean used;
    public String who;
}
Gson gson = new Gson();
String json = "{\n" +
              "    \"category\": [\n" +
              "        \"iOS\",\n" +
              "        \"Android\",\n" +
              "        \"瞎推荐\",\n" +
              "        \"拓展资源\",\n" +
              "        \"福利\",\n" +
              "        \"休息视频\"\n" +
              "    ],\n" +
              "    \"error\": false,\n" +
              "    \"results\": {\n" +
              "        \"Android\": [\n" +
              "            {\n" +
              "                \"_id\": \"56cc6d23421aa95caa707a69\",\n" +
              "                \"createdAt\": \"2015-08-06T07:15:52.65Z\",\n" +
              "                \"desc\": \"类似Link Bubble的悬浮式操作设计\",\n" +
              "                \"publishedAt\": \"2015-08-07T03:57:48.45Z\",\n" +
              "                \"type\": \"Android\",\n" +
              "                \"url\": \"https://github.com/recruit-lifestyle/FloatingView\",\n" +
              "                \"used\": true,\n" +
              "                \"who\": \"mthli\"\n" +
              "            }\n" +
              "        ]\n" +
              "    }\n" +
              "}";
Data data = gson.fromJson(json, Data.class);

 

转载于:https://www.cnblogs.com/guwei4037/p/7444042.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值