用java解析json的时候程序没有报错,输出pro.MyJson@143bf3d,没有预期的json结构出来,是什么原因

用java解析json的时候程序没有报错,输出pro.MyJson@143bf3d,没有预期的json结构出来,是什么原因,第1张

我下面引用的数据来自你上面给出的 我看了你提供的代码,main方法中有些乱,主要是你不懂原理才显得很乱

这么说吧: 1> JSONObjectfromObject(obj) 是把obj对象转换成json字符串格式{key:value} 格式 2> JSONObjecttoBean(json字符串 , 对象); 是将json字符串格式数据赋值给 你指定的集合对象或Java对象, 这里它会根据你给定的json字符串里面的key的名称去找MyJson对象中与之匹配的属性名称 然后就是利用反射机制给对象赋值了,这个你就不用管理,反正是json包来做的 简而言之就是: json格式{key : value} 的key 去找java对象的属性名,然后赋值 不懂再问吧,我就说到这里了 重点是先理解原理,把原理先理解好了,再试着编码,这样才会 节约时间,提高效率 这个json包无非干的就是 1>把json字符串格式 转成 java 对象,也就把数据填入java对象中, 2> java 对象 转成 json字符串格式 罢了

String json1 = "{'myId':2,'name':'onename','fun':'true'}";

JSONObject json = JSONObjectfromObject(json1);

Systemoutprintln(json);

MyJson jo1 = (MyJson)JSONObjecttoBean(json, MyJsonclass);

Systemoutprintln(jo1getfun());

MyJson jo= new MyJson();

josetId(2);

josetName("onename");

josetfun("true");

JSONObject json11 = JSONObjectfromObject(jo);

Systemoutprintln(json11);

JSON 就是一种格式

不同类型的变量转换为JSON格式的方式稍有不同。

(1)将数值型、布尔型变量和函数对象转换为JSON格式非常简单,不需要做任何处理,

(2)将字符串型变量转换为JSON格式时,需要先处理其中的某些特殊字符。例如双引号、单引号和回车、换行符,将其替换为反斜杠"转义后

的字符,然后用引号将转换后的内容括起来。代码如下:

return(""""+objreplace(/(["""'])/g,"""$1")replace(/"r/,"""r")replace(/"n/,"""n")replace(/"t/,"""t")+"""");

(3)将日期时间型变量转换为JSON格式时,需要将其进行特殊处理,代码如下:

return("(new Date("""+objtoUTCString()+"""))");

(4)将正则表达式转换为JSON格式时,通过此对象的source获取其内容。不仅仅需要处理source中的特殊字符,还需要注意设置其

global,ignoreCase和multiline属性,代码如下:

return("(new RegExp("""+String(objsource)replace(/("W)/g,"""$1")+""",

"""+(objglobal"g":"")+(objignoreCase"i":"")+(objmultiline"m":"")+"""))");

(5)将数组对象转换为JSON格式时,递归调用toJSONString函数依次序列化其中的每个元素,然后将获得的各个字符串用逗号连接,在最外

围用方括号[]将其括起来,代码如下:

var re = new Array();

for(var i=0; i<objlength; i++)repush(toJSONString(obj[i]));

return("[" + rejoin(", ") + "]");

(6)将Object对象转换为JSON格式时,做法与数组对象类似,同样需要通过递归调用来依次处理其中的每个组成元素。此外,需要注意的

是,其组成元素序列化时,需要构成名值对的形式。

JSONObject Gson Xstream等等的类库都可以解析

请把你的json代码提交上来JSONObject object = new JSONObject(json);JSONObject root = objectgetJSONObject("root"); JSONObject data = rootgetJSONObject("data"); JSONArray list = datagetJSONArray("list");for(int i=0; i<listlength(); i++){ JSONObject entityObj = listgetJSONObject(i); JSONArray entitys = entityObjgetJSONArray("entity"); for(int j=0; j<entityslength(); j++){ JSONObject entity = entitysgetJSONObject(j); String date = entitygetString("取消日期"); } }引入jar,替换你的json直接可运行

以上就是关于用java解析json的时候程序没有报错,输出pro.MyJson@143bf3d,没有预期的json结构出来,是什么原因全部的内容,包括:用java解析json的时候程序没有报错,输出pro.MyJson@143bf3d,没有预期的json结构出来,是什么原因、如何使用Notepad++格式化json字符串、cjson数组如何解析等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9594393.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存