Json的常用方法[通俗易懂]

Json的常用方法[通俗易懂]Json的常用方法

大家好,又见面了,我是你们的朋友全栈君。

Java中的json

在java中要想方便的操作json首先要引入json的jar包,如json-lib-2.4-jdk15.jar

下面是一些常用的方法:

Map<String,String> map1 = new HashMap<String,String>();
map1.put("username","liuwei");
map1.put("psw", "123");
//Map转换为json对象
//方法一:转换为带有key值的json对象
JSONObject json0 = new JSONObject();
json0.put("mapJson=", map1);
System.out.println("json0="+json0);
//方法二:转化为不带有key值的json对象
JSONObject json1 = JSONObject.fromObject(map1);
//Map对象转化为json数组
JSONArray mapArr = JSONArray.fromObject(map1);

ListMap转化为json对象

//方法一:转化为没有key值的json对象
List<Map<String,String>> listMap = new ArrayList<Map<String,String>>();
Map<String,String> map2 = new HashMap<String,String>();
map2.put("username", "zhangsan");
map2.put("psw", "46732");
listMap.add(map1);
listMap.add(map2);
JSONArray jsonArray = JSONArray.fromObject(listMap);

//f方法二:转化为带有key值的json对象
JSONObject json5 = new JSONObject();
json5.put("1", listMap);

json数组转化为带有key值的json对象

JSONObject jsonobj2 = new JSONObject();
jsonobj2.put("newuser", jsonArray);
jsonobj2.put("otheruser", jsonArray2);

json对象转换为json字符串

String jsonstr =  jsonobj2.toString();

json字符串转换为json对象

JSONObject jsonObj = JSONObject.fromObject(jsonstr);

获取json对象的key获取属性值,并可以转化为map

Map<String,String> map = new HashMap<String,String>();
map.put("username", jsonObjOne.getString("username"));
map.put("psw", jsonObjOne.getString("psw"));

json数组转化为ListMap

List<Map<String,String>> list4 = new ArrayList<Map<String,String>>();
for(int i = 0;i < jsonArr2.size();i++){
JSONObject jsonObjOne = jsonArr2.getJSONObject(i);
Map<String,String> map = new HashMap<String,String>();
map.put("username", jsonObjOne.getString("username"));
map.put("psw", jsonObjOne.getString("psw"));
list4.add(map);

Js中的json

           /**
			 *JSON.parse  字符串转成对象
			 * 参数1:字符串
			 * 参数2:执行函数,有返回值
			 * @type {string}
			 */
			var parseTest = function() {
				var data = '{"data":[],"parmas":{}}';
				return JSON.parse(data, function(key, val) {
					return val;
				});
			};
			console.log(parseTest());
			/**
			 * JSON.stringify 对象转换为字符串。
			 * 参数1:js对象
			 * 参数2:执行函数,有返回值
			 * 参数3:文本添加缩进、空格和换行符,如果参数是一个数字,则返回值文本在每个级别缩进指定数目的空格,如果参数大于10,则文本缩进10个空格。参数可以使用非数字,如:\t
			 */
			var stringifyTest = function() {
				var data = {
					"data": [1],
					"parmas": {
						"key": 1
					}
				};
				return JSON.stringify(data, function(key, val) {
					return val;
				}, 1);
			};
			console.log(stringifyTest());

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/106626.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • pytest的使用_新代子程序重复调用

    pytest的使用_新代子程序重复调用Pytest执行用例规则Pytest在命令行中支持多种方式来运行和选择测试用例1.对某个目录下所有的用例pytest2.对模块中进行测试pytesttest_mod.py3.对文件夹进行

    2022年7月29日
    3
  • ebpf教程_宝马F底盘编程

    ebpf教程_宝马F底盘编程eBPF入门之编程•Feiskyhttps://feisky.xyz/posts/2021-01-29-ebpf-program/目录BCClibbpf-bootstrap内核源码小结eBPF提供了强大的跟踪、探测以及高效内核网络等功能,但由于其接口处于操作系统底层,新手入门起来还是有很大难度,特别是如何编写eBPF程序是入门的一大难点。本文将介绍一些常用的eBPF编程框架。BCC上篇文章介绍的BCC其实就提供了对eBPF的封装,前端提供Python

    2022年9月16日
    0
  • adb连接安卓设备_安卓adb命令

    adb连接安卓设备_安卓adb命令局域网连接方式adb其他命令用法获取椭圆边界条件

    2025年7月1日
    0
  • Java8 Stream groupingBy对List进行分组

    Java8 Stream groupingBy对List进行分组提到GroupBy,首先想到的往往是sql中的groupby操作,对搜索结果进行分组。其实Java8StreamsAPI中的Collector也支持流中的数据进行分组和分区操作,本片文章讲简单介绍一下,如何使用groupingBy和partitioningBy来对流中的元素进行分组和分区。 groupingBy 首先看一下Java8之前如果想对一个List做分组操作,我们需要…

    2022年8月20日
    9
  • java 怎么更新session值_java – 如何更新session.setAttribute(name,value)值,其中名称相同?…「建议收藏」

    java 怎么更新session值_java – 如何更新session.setAttribute(name,value)值,其中名称相同?…「建议收藏」我有一种情况,我需要更新名称保持不变的setAttribute的值.考虑以下情况作为示例–假设我有三个JSP:abc.jsp,xyz.jsp,pqr.jsp.现在首先运行abc.jsp然后控制前进到xyz.jsp&然后转发到pqr.jsp.现在执行pqr.jspt后,再次使用setAttribute中的更新值控制回xyz.jsp.abc.jsp:ArrayListgetSupplyS…

    2022年10月16日
    0
  • Microsoft Platform SDK Febrary 2003 Edition 下载地址与下载方式「建议收藏」

    Microsoft Platform SDK Febrary 2003 Edition 下载地址与下载方式「建议收藏」今天上网找windowssdk,发现最新的SDK已经不支持vc6.0,在微软官方站下看到下面一段话。DevelopmentTools.TobuildtheC/C++samples,youmusthaveaC/C++compiler.IfyouareusingMicrosoftVisualC/C++®,runitatleastoncebe

    2022年5月23日
    38

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号