把字符串转化为json
任务:
把字符串
{"name":"黄威","age":27,"address":"{\"district\":\"海淀区\",\"street\":\"回龙观西大街\",\"building\":\"通达园\"}","score":0}
转化为:
{"name":"黄威","age":27,"address":{"district":"海淀区","street":"回龙观西大街","building":"通达园"},"score":0}
代码:
/*** * 最大限度地当做json 字符串解析<br /> * 方案:"[...]" 转为[...],并且其中的\"-->"<br /> * "{...}" 转为{...},并且其中的\"-->"<br /> * @param jsonStr * @return */ public static String toJson(String jsonStr) { if (ValueWidget.isNullOrEmpty(jsonStr)) { return null; } if (ValueWidget.isHTMLWebPage(jsonStr)) { return jsonStr; } if (!jsonStr.trim().startsWith("{")) { return jsonStr; } JSONObject jsonObject = null; try { jsonObject = JSONObject.parseObject(jsonStr); } catch (Exception e) { e.printStackTrace(); return jsonStr; } ParseJsonInfo parseJsonInfo = toJsonObjectRecursive(jsonObject); if (parseJsonInfo.isHasString()) { return jsonObject.toJSONString(); } return jsonStr; } /** * 最大限度地当做json 字符串解析<br /> * 方案:"[...]" 转为[...],并且其中的\"-->"<br / * * @param jsonObject * @return */ public static ParseJsonInfo toJsonObjectRecursive(JSONObject jsonObject) { // JSONObject jsonObject=JSONObject.parseObject(jsonStr); Set<Map.Entry<String, Object>> set = jsonObject.entrySet(); // boolean hasString=false; ParseJsonInfo parseJsonInfo = new ParseJsonInfo(); for (Map.Entry<String, Object> entry : set) { // System.out.println("key :" + entry.getKey()); Object val = entry.getValue(); String key = entry.getKey(); // System.out.println("value :" + val); if (val instanceof String) { String valString = (String) val; valString = valString.trim(); if (valString.contains(":") && valString.contains("\"")) {//判断是否是json字符串,比如{"username":"whuang"} // hasString=true; if (valString.startsWith("[")) {//"[...]"--数组 JSONArray jsonArray = JSONObject.parseArray(valString); parseArray(parseJsonInfo, jsonArray); jsonObject.put(key, jsonArray); } else {//--对象 ParseJsonInfo parseJsonInfoTmp = toJsonObjectRecursive(JSONObject.parseObject(valString)); jsonObject.put(key, parseJsonInfoTmp.getJsonObject()); } parseJsonInfo.setHasString(true); } } else if (val instanceof JSONObject) { ParseJsonInfo parseJsonInfoTmp = toJsonObjectRecursive((JSONObject) val); if (parseJsonInfoTmp.isHasString()) { parseJsonInfo.setHasString(true); } } // System.out.println("value type :" +(val instanceof String)); // String val2=JSONHWUtil.unescapeJava((String)val); // System.out.println("val2 :" + val2); } parseJsonInfo.setJsonObject(jsonObject); return parseJsonInfo; } public static void parseArray(ParseJsonInfo parseJsonInfoParent, JSONArray jsonArray) { int size = jsonArray.size(); for (int i = 0; i < size; i++) { Object object = jsonArray.get(i); if (object instanceof JSONObject) { ParseJsonInfo parseJsonInfoTmp = toJsonObjectRecursive((JSONObject) object); if (parseJsonInfoTmp.isHasString()) { parseJsonInfoParent.setHasString(true); jsonArray.set(i, parseJsonInfoTmp.getJsonObject()); } } } }
依赖的库:
<dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.6</version> </dependency>
完整代码 见附件中的com/io/hw/json/JSONHWUtil.java
相关推荐
这篇文章主要介绍了JS如何把字符串转换成json,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 Json格式字符串 "{"rows":[{"date":"2018-11-19","money":"22",...
将string类型的xml转为JSON字符串,利用JSONObject处理JSON串
Json对象与json字符串互相转换处理工具
一、JSON字符串转换为JSON对象 要使用上面的str1,必须使用下面的方法先转化为JSON对象: //由JSON字符串转换为JSON对象 var obj = eval(‘(‘ + str + ‘)’); 或者 var obj = str.parseJSON(); //由JSON...
自动将字符串转化为Json对象 使用方法Json parse 在前端使用更方便
json字符串转化为list泛型的源码demo,项目中包括需要运行的jsonjar包
主要是字符串转换成json,里面有详细介绍,可以好好看看
主要用于将java对象转换为json对象字符串,或字符串数组。
asp字符串转json对象类,原生vbs实现,json对象属性用obj("name")方式访问,obj.name方式不可以
将json字符串转换为json对象的方法。在数据传输过程中,json是以文本,即字符串的形式传递的,而JS操作的是JSON对象,所以,JSON对象和JSON字符串之间的相互转换是关键 例如: JSON字符串: var str = '{ "name": ...
json字符串和js对象之间的转换,包括eval、parseJSON函数、JSON.parse、$.toJSON、$.parseJSON、复杂的json格式对象使用,让你一分钟理解json的那些事
字符串转换成json对象
json 字符串转成c++类对象,json 字符串转成c++类对象
标准json字符串编码使用unicode,即boost 提供的 中拼接起来的字符串采用unicode字符集编码,而很多网页采用编码为utf8。 这个库字符编码采用系统编码,系统采用utf8字符集的话拼接起来字符串就是ut8了;另外在博客...
在cjson基础上,实现了字符串与结构体自动相互转化的功能。 可以自动将字符串(JSON格式)转化为对应的结构体,反之亦可
项目中关于json字符串转换的可用,导入项目即可进行引入转换
在C语言环境下,将json格式的字符串进行转化输出,适用于keil等C语言环境下。
json转译工具,用于对打印json字符串的格式化,使易于查看分析
NULL 博文链接:https://lzkyo.iteye.com/blog/640284
一个把对象转换为JSON字符串 把该DLL引入项目中就能使用了