JSON总结以及在javaweb中的四种方法的相互转化

json可以理解为key,value键值对
分类: 分为 json对象 ,json数组
格式: 除了数组和数字,其他的都要加引号(最普通格式单双引号都可以)
附加:
延伸出打印格式为:json字符串
json关联的还有java对象

一.四者区别:

    1.java对象:   属于某一实体类中有的部分或全部属性 的 java对象格式 的属性集合,
    如
     java对象{pageSize=8}
    
    2.json对象:   属于某一实体类中有的部分或全部属性 的 json对象格式 的属性集合,{'name':x(x为"a"或数字或a(变量为已定义的)或数组或json数组}
    
    3.json数组:   属于 json对象的 集合;[{"pageSize":8,name:"的"},{"name":"啊",sex:"男"}]
    
    4.json字符串: 为json对象的 提交或打印输出格式;如json字符串'{"pageSize":8}' (注意引号)

(看起来json’对象和json字符串打印时没区别??
实际是有本质区别的!可以理解为java类中String a=“哦” ,打印时的字符串 "哦"表达形式是没引号的.)

二,四者转换:(因为涉及json通常要涉及到javaweb.)

1.writeValueAsString()
java对象→ json字符串
(通常存在于客户端和服务端的交互点的 客户端发送 :(HttpClientToolImpl.java)

	 ............
	   格式(细节根据情况自定义):
	  ObjectMapper objMapper = new ObjectMapper();
	  String json = objMapper.writeValueAsString(obj);
	 ............

附1偶尔还是用
1.JSONObject.fromObject()
*同样是java对象→ json字符串
(通常存在于controller层传至jsp页面中 *
http://www.cnblogs.com/qiankun-site/p/5774325.html

  JSONObject.fromObject(user(user为java对象)).toString());

2.readValue()
json字符串→java对象
(通常存在于客户端和服务端的交互点的
客户端接收*:(HttpClientToolImpl.java)*

		............
		格式(细节根据情况自定义):
		log.info("响应报文JSON字符串" + responseStr); 	
		return objMapper.readValue(responseStr, ApiResponseObject.class);
		(其中ApiResponseObject为Javaweb中需要的返回json对象的格式的自定义类)
		.............

3.stringify()
json对象→java字符串
(通常用于jsp中,因为jsp中是经过一定处理才能获得并利用json对象的!!!)

格式:
JSON.stringify(xxx)(位于ajax的data处)

例如

   $.ajax({
   			type : "POST",
   			contentType : 'application/json;charset=utf-8',
   			url : "${pageContext.request.contextPath}/pc/contect/remove?${_csrf.parameterName}=${_csrf.token}",
   			data : JSON.stringify({"id":$(Obj).attr("zid")}),
   			dataType : "json", //ajax返回值设置为text(json格式也可用它返回,可打印出结果,也可设置成json)  
   			async : false,
   			success : function(json) {
   				if(json.errorCode==0){
   					$(Obj).parent().parent().remove();
   				}
   			},
   			error : function(json) {
   				 toastr.warning("删除失败");
   			}
   		});

4.parse()
json字符串→json对象
(通常也用于jsp中.)
源码例子:https://www.runoob.com/js/javascript-json-parse.html

<script>
var text = '{"employees":[' +
	'{"name":"菜鸟教程","site":"http://www.runoob.com" },' +
	'{"name":"Google","site":"http://www.Google.com" },' +
	'{"name":"Taobao","site":"http://www.taobao.com" }]}';
obj = JSON.parse(text);
document.getElementById("demo").innerHTML =
	obj.employees[1].name + " " + obj.employees[1].site;
</script>

打印:

 Google http://www.Google.com

*注意:parse()(json字符串→json对象) 相对
readValue()*( json字符串→java对象 )来说,
parse()是直接键数据打印html页面,
而readValue()是发送至后台去利用处理数据 )

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值