java的JsonObject和parseObject和fromObject对象提取值方法

2023-05-16

区别

两个功能差不多,但是属于不同的包,parseObject是alibaba.fastjson.JSON,fromObject是net.sf.json

JsonObject.parseObject方法

第一种数据格式:

[
	{
		"data ":[
			{
				"building_id ":"*** ",
				"building_num ":"** ",
				"door_name ":"** ",
				"electric ":"** ",
				"room_name ":"** "
			}
			],
		"success ":true
	}
]

String s="[{\"success\":true,\"data\":[{\"building_id\":\"***\",\"building_num\":\"**\",\"room_name\":\"**\",\"door_name\":\"**\",\"electric\":\"**\"}]}]" ;
String b= s.substring(0,s.length()-1);
String c=b.substring(1, b.length());
System.out.println(b+"b___");
JSONObject jsonx = JSON.parseObject(c);
JSONArray ja = jsonx.getJSONArray("data");
for (int i = 0; i < ja.size(); i++) {
  JSONObject jo = ja.getJSONObject(i);
  String building_id = jo.getString("building_id");
  System.out.println(building_id+"building_id>>>>>");
}

第二种数据格式:

[
	{
		"password ":"*1234567890 ",
		"success ":"true "
	}
]
String s="[{\"success\":\"true\",\"password\":\"*1234567890\"}]";
String b= s.substring(0,s.length()-1);
String c=b.substring(1, b.length());
System.out.println(c+"c___");
JSONObject reagobj = JSONObject.fromObject(c);
String name = reagobj.getString("password");
System.out.println(name+"name,,,,,,");
String password = jm.getString("password");
System.out.println(password);
System.out.println("看看有没有值"+password);  

第三种数据格式:

{
	"data ":{
		"access_token ":"5a7040ccf66bafd06acd39b6f61c19230eaba426755509646d6da23ddd9fb206 ",
		"expires_second ":36000
	},
	"rlt_code ":"HH0000 ",
	"rlt_msg ":"成功 "
}

String res="{\"data\":{\"access_token\":\"5a7040ccf66bafd06acd39b6f61c19230eaba426755509646d6da23ddd9fb206\",\"expires_second\":36000},\"rlt_code\":\"HH0000\",\"rlt_msg\":\"成功\"}";
JSONObject jsonObject= JSON.parseObject(res);
String data = jsonObject.getString("data");
JSONObject jsondata= JSON.parseObject(data);
String token = jsondata.getString("access_token");

第四种数据格式:

{
	"data ":{
		"total ":23,
		"start ":0,
		"total_page ":3,
		"rows ":[
			{
				"op_way ":"3 ",
				"user_mobile ":"15321918571 ",
				"op_time ":1493881391976,
				"pwd_no ":30
			},
			{
				"op_way ":"1 ",
				"op_time ":1493880995000,
				"pwd_no ":31
			}
		],
		"current_page ":1,
		"page_size ":10
	},
	"rlt_code ":"HH0000 ",
	"rlt_msg ":"成功 "
}

String res="{\"data\":{\"total\":23,\"start\":0,\"total_page\":3,\"rows\":[{\"op_way\":\"1\",\"op_time\":1493884964000,\"pwd_no\":31},{\"op_way\":\"3\",\"user_mobile\":\"18518517491\",\"op_time\":1493884615032,\"pwd_no\":30},{\"op_way\":\"3\",\"user_mobile\":\"18518517491\",\"op_time\":1493883836552,\"pwd_no\":30},{\"op_way\":\"1\",\"op_time\":1493883294000,\"pwd_no\":31},{\"op_way\":\"1\",\"op_time\":1493883256000,\"pwd_no\":31},{\"op_way\":\"3\",\"user_mobile\":\"15321918571\",\"op_time\":1493883015371,\"pwd_no\":30},{\"op_way\":\"1\",\"op_time\":1493882007000,\"pwd_no\":31},{\"op_way\":\"3\",\"user_mobile\":\"15321918571\",\"op_time\":1493881498520,\"pwd_no\":30},{\"op_way\":\"3\",\"user_mobile\":\"15321918571\",\"op_time\":1493881391976,\"pwd_no\":30},{\"op_way\":\"1\",\"op_time\":1493880995000,\"pwd_no\":31}],\"current_page\":1,\"page_size\":10},\"rlt_code\":\"HH0000\",\"rlt_msg\":\"成功\"}";
JSONObject jsonObject= JSON.parseObject(res);
String data = jsonObject.getString("data");
JSONObject jsonObjects= JSON.parseObject(data);
JSONArray ja = jsonObjects.getJSONArray("rows");
for (int i = 0; i < ja.size(); i++) {
	JSONObject jo = ja.getJSONObject(i);
	String op_way = jo.getString("op_way");
	String op_time = jo.getString("op_time");
	SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
	long lt = new Long(op_time);
	Date date = new Date(lt);
	res = simpleDateFormat.format(date);
	String pwd_no = jo.getString("pwd_no");
	String user_mobile = jo.getString("user_mobile");
	System.out.println(op_way+res+pwd_no+user_mobile+"------------");
}
1.对象与字符串之间的互转
①将对象转换成为字符串
String str = JSON.toJSONString(infoDo);
②字符串转换成为对象
InfoDo infoDo = JSON.parseObject(strInfoDo, InfoDo.class);

2.对象集合与字符串之间的互转
①将对象集合转换成为字符串
String users = JSON.toJSONString(users);
②将字符串转换成为对象集合
List<User> userList = JSON.parseArray(userStr, User.class);  

3.字符串互转JSONObject
①String 转 Json对象
JSONObject jsonObject = JSONObject.parseObject(jsonString);
②json对象转string
JSONObject jsonObject = JSONObject.parseObject(str);//json对象转字符串 
String jsonString = jsonObject.toJSONString();

4.map与字符串之间互转
 ① 字符串转map
  JSONObject  jsonObject = JSONObject.parseObject(str);
  Map<String,Object> map = (Map<String,Object>)jsonObject;//    //json对象转Map
 ②map转字符串
  String jsonString = JSON.toJSONString(map);
5.Map 转 Json对象
   ①map转json对象
    Map<String,Object> map = new HashMap<>();
    map.put("age", 24);
    map.put("name", "cool_summer_moon");
    JSONObject json = new JSONObject(map);
 ②json对象转Map 
  Map<String,Object> map = (Map<String,Object>)jsonObject; 

JsonObject.fromObject方法

{
    "resultcode":"200",
    "reason":"成功的返回",
    "result":{
    "company":"顺丰",
    "com":"sf",
    "no":"575677355677",
    "list":[
        {
        "datetime":"2013-06-25 10:44:05",
        "remark":"已收件",
        "zone":"台州市"
        },
        {
        "datetime":"2013-06-25 11:05:21",
        "remark":"快件在 台州 ,准备送往下一站 台州集散中心 ",
        "zone":"台州市"
        }
    ],
    "status":1
    },
    "error_code":0
}


8   	  //复杂的json数据
9         String jsonStr = "{\"resultcode\":\"200\",\"reason\":\"成功的返回\",\"result\":{\"company\":\"顺丰\",\"com\":\"sf\","
10                 + "\"no\":\"575677355677\",\"list\":[{\"datetime\":\"2013-06-25 10:44:05\",\"remark\":\"已收件\",\"zone\":\"台州市\"},"
11                 + "{\"datetime\":\"2013-06-25 11:05:21\",\"remark\":\"快件在 台州 ,准备送往下一站 台州集散中心 \",\"zone\":\"台州市\"}],\"status\":1},"
12                 + "\"error_code\":0}";
13         JSONObject json = JSONObject.fromObject(jsonStr); //得到整个json串
14         System.out.println("resultcode:"+json.getString("resultcode"));  //根据key得到value:200
15         System.out.println("reason:"+json.getString("reason"));  //根据key得到value:成功的返回
16         
17         //当遇到result时,也是将它当成一个整体串
18         System.out.println("company:"+JSONObject.fromObject(json.getString("result")).getString("company"));
19         System.out.println("com:"+JSONObject.fromObject(json.getString("result")).getString("com"));
20         System.out.println("no:"+JSONObject.fromObject(json.getString("result")).getString("no"));
21         
22         //当遇到再次嵌套时,此时的list是一个JSONArray,所以需要将其当作数组的形式处理,其实还是一个串
23         //get(i)以下标为主,里面的东西,其实也是一个json的形式数据,你可以不看外面怎么嵌套,按道理只当成单单一个json串处理即可
24         System.out.println("list(0).datetime:"+JSONObject.fromObject(JSONArray.fromObject(JSONObject.fromObject(json.getString("result")).getString("list")).get(0)).getString("datetime"));
25         
26         System.out.println("list(0).remark:"+JSONObject.fromObject(JSONArray.fromObject(JSONObject.fromObject(json.getString("result")).getString("list")).get(0)).getString("remark"));
27         
28         System.out.println("list(0).zone:"+JSONObject.fromObject(JSONArray.fromObject(JSONObject.fromObject(json.getString("result")).getString("list")).get(0)).getString("zone"));
29         
30         System.out.println("list(1).datetime:"+JSONObject.fromObject(JSONArray.fromObject(JSONObject.fromObject(json.getString("result")).getString("list")).get(1)).getString("datetime"));
31         
32         System.out.println("list(1).remark:"+JSONObject.fromObject(JSONArray.fromObject(JSONObject.fromObject(json.getString("result")).getString("list")).get(1)).getString("remark"));
33         
34         System.out.println("list(1).zone:"+JSONObject.fromObject(JSONArray.fromObject(JSONObject.fromObject(json.getString("result")).getString("list")).get(1)).getString("zone"));
35         
36         System.out.println("status:"+JSONObject.fromObject(json.getString("result")).getString("status"));
37         
38         System.out.println("reason:"+json.getString("error_code"));

转载链接:
https://www.jb51.net/article/137445.htm
https://www.cnblogs.com/angelye/p/7997678.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

java的JsonObject和parseObject和fromObject对象提取值方法 的相关文章

  • ftp与sftp上传工具类

    1 ftp上传工具类 package com zhjg utils import java io IOException import java io InputStream import java io OutputStream impo
  • 日本推出可实时监测地震烈度iPhone应用软件

    这个 xff0c 实在 xff01 据日本媒体报道 xff0c 日本近日在iPhone及iPad的平台上推出一款名为 i震度 的防灾害应用软件 该应用软件由专业研发地震检测仪器的白山工业公司开发完成 xff0c 具有随时随地监测地震烈度的功
  • Android 文件管理器 文件缩略图标显示流程

    前言 本篇文章是基于Android 11 文件管理器 xff08 com android documentsui xff09 的源码 xff0c 在实际项目中定位加载图片和视频文件显示缩略图的相关问题时 xff0c 做的总结 xff0c 文
  • Android 显示 指纹/人脸 身份验证对话框

    1 前言 为了增加用户的隐私和安全 xff0c 需保护您的应用中的敏感信息或付费内容 xff0c 一种方法是请求生物识别身份验证 xff0c 例如使用人脸识别或指纹识别 本篇文章介绍了如何在您的应用中支持生物识别登录流程 2 声明应用支持的
  • 截取图片部分

  • Android PackageManagerService总结(五) APK卸载流程

    一 概述 PackageManagerService 简称PKMS xff0c 是Android系统中核心服务之一 xff0c 管理着所有与package相关的工作 xff0c 常见的比如安装 卸载应用 信息查询等工作 主要完成以下核心功能
  • ButterKnife内存泄漏问题

    在butterKnife自动生成的代码 xff08 XXX ViewBinding xff09 中 xff0c 里面有这样一段代码 xff1a view setOnClickListener new DebouncingOnClickLis
  • PPTV面试算法思考-最长对称子字符串

    题目 最近在微信公众号里看看到了一个PPTV的面试算法题 xff0c 感觉难度适中 xff0c 想试下 题目的内容为求一个字符串的最长对称子字符串 如 xff1a 输入 输出 abba 4 abad 3 acccbaa 3 我的算法1 自己
  • C++

    由于见到论坛上不少找书的 xff0c 于是就稍稍汇总总结了一下 xff0c 作为本人即将推出的 C 43 43 资源大汇 系列文章的引子 本文只是初稿 xff0c 其中有不少的纰漏 笔误 打误 xff08 打字错误 xff09 希望各位纠正
  • pyspark MLlib基本使用

    MLib 基本概念 MLib其实就是将数据以RDD的形式进行表示 xff0c 在分布式数据集上调用各种算法 使用方法 MLlib中包含能够在集群上运行良好的并行算法 xff0c 如kmeans 分布式RF 交替最小二乘等 xff0c 这能够
  • 一个启动模式为singleTop的activity,如果再次启动会发生什么? 面试官想问的是 onNewIntent()

    Activity有一个 onNewIntent Intent intent 回调方法 xff0c 该方法我们几乎很少使用 xff0c 导致已经将其忽略掉 该方法的官方解释如下 xff1a This is called for activit
  • c++ 中的重载全局new,delete

    最近做一个小项目 xff0c 对c 43 43 又有很多新的理解 实在不的不让人发出感叹 xff0c c 43 43 太强大了 xff0c 绝对不是一朝一夕就可以领悟她的内涵的 首先我们要清楚 xff0c 为什么我们要重载new xff0c
  • 解决AndroidStudio报错问题:Missing essential plugin

    前言 xff1a 今天下载了Android4 2 0Canary14最新版 xff0c 打开时突然报了一个错 xff0c 1 错误现象 xff1a AndroidStudio 无法正常打开 xff0c 打开之后弹出报错窗口显示 xff1a
  • java使用ftp上传文件出现false()

    http blog csdn net beyondlpf article details 9343781这是我解决的的原文地址解析原因 在项目中使用commons net jar实现FTP文件的下载 xff0c 在windows xp上运行
  • keil5在原有工程上修改工程名

    1 在工程文件目录中 xff0c 将1 uvoptx和1 uvprojx名字改成2 uvoptx和second uvprojx 2 其他1 uvoptx文件统统删除 3 打开second uvproj 4 点击 xff0c 在弹出的界面上
  • Systemd 入门教程:命令篇

    原文 xff1a http www ruanyifeng com blog 2016 03 systemd tutorial commands html 一 由来 历史上 xff0c Linux 的启动一直采用init进程 下面的命令用来启
  • 数据分位值计算shell脚本

    数据 sort n perl e 39 64 tp 61 500 75 9 97 99 995 999 64 l 61 lt gt for i 61 0 i lt 64 tp i 43 43 d 61 64 tp i printf 34 T
  • ssh服务器拒绝了密码 请再试一次

    可能原因是 xff1a 第一种情况 xff1a 可能是服务器的密钥改变了 xff0c 然后服务器内部的认证authorized keys变化了 xff0c 可以删除里边你的公钥 xff0c 再重新认证登录下试试 第二种情况 xff1a 21
  • win7频繁提示资源管理器已停止工作解决办法

    今天上班打开电脑 xff0c 总是弹出windows资源管理器已停止工作 xff0c 点击下方的 重新启动 xff0c 又恢复正常 xff0c 但是不一会出现这个问题 xff0c 如此反复 xff0c 差不多一分钟左右出现一次 xff0c
  • Eclipse中在项目右键菜单点击->Maven->Update Projects时,JDK总是切回 1.5

    Maven问题总结 xff1a Eclipse中项目右键菜单中点击Maven gt Update Projects时JDK被重置 Eclipse中在项目右键菜单点击 gt Maven gt Update Projects时 xff0c JD

随机推荐