把字符串转化为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
相关推荐
本知识点主要关注如何将ASP中的字符串转换为JSON对象,特别地,这个过程是通过原生的VBScript(Visual Basic Script)实现的,而不是依赖于第三方库。 首先,我们需要理解VBScript中的JSON解析概念。由于ASP.NET...
这篇文章主要介绍了JS如何把字符串转换成json,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 Json格式字符串 "{"rows":[{"date":"2018-11-19","money":"22",...
本篇文章将详细讲解如何将string类型的XML字符串转换为JSON字符串,并介绍相关的技术知识。 首先,理解XML和JSON的基本结构是至关重要的。XML是一种树形结构的标记语言,通过标签来定义元素和属性,例如: ```xml ...
1. `JSON.parse()`方法用于将一个JSON字符串转换为JavaScript对象。在JSON中,数据被表示为键值对(key-value pairs)的集合,而JavaScript对象正是以这种方式存储数据。例如,如果你有一个JSON字符串`'{"name": ...
在Java编程中,我们经常需要将JSON格式的数据转换为Java对象,这通常涉及到将JSON字符串转化为List泛型。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和...
在JavaScript编程中,将字符串转换为JSON对象是一个常见的任务,特别是在处理服务器与客户端之间的数据交换时。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它采用完全独立于语言的文本格式,但...
在JavaScript中,我们有内置的方法可以方便地将字符串转换为JSON对象。 **方法一:`JSON.parse()`** `JSON.parse()`是JavaScript内置的函数,用于将一个JSON格式的字符串解析成一个JavaScript值(对象或原始值)。...
Json对象与json字符串互相转换处理工具
在JavaScript中,可以使用`JSON.parse()`将JSON字符串转化为JavaScript对象,从而可以访问和修改其属性。例如: ```javascript let jsonString = '{"name":"John","age":30,"city":"New York"}'; let jsonObject = ...
标题中的“使用json-lib将java对象转换成json字符串”指的是在Java编程中,利用json-lib这个库来将Java对象转化为JSON格式的字符串。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,广泛用于前后端...
在这个例子中,我们创建了一个关联数组,然后使用json_encode()将其转换为JSON字符串。结果将是: ```json { "name": "John Doe", "age": 30, "city": "New York" } ``` 如果你需要处理的对象是PHP类的实例,...
- **字符串到JSON转换**:将普通的字符串转化为标准的JSON格式,自动识别并处理非法字符和格式。 - **格式化JSON**:接收未格式化的JSON字符串,将其转换为具有缩进和换行的易读格式。 - **验证JSON**:检查输入...
在C++编程中,将JSON字符串转换为C++类对象是一项常见的任务,特别是在处理网络通信、数据存储或配置文件时。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析...
自动将字符串转化为Json对象 使用方法Json parse 在前端使用更方便
通过这种方式,你可以使用`JsonUtils.jsonToJavaObject()`方法将JSON字符串转换为任意指定类型的Java对象,而`JsonUtils.javaObjectToJson()`则将Java对象转换为JSON字符串。 总之,JSON字符串转换插件是Java开发中...
将JSON字符串转化为结构体,意味着解析JSON文本并将其内容映射到预先定义的C语言结构体中;反之,将结构体转化为JSON字符串则是将结构体中的数据转换为JSON格式的文本,便于在网络间传递或存储。 关于“反射”这一...
C# json格式转换,Json格式字符串与C#对象相互转换,类库和测试demo .../// Dictionary类型对象转换为Json格式字符串 /// C#对象转换为Json格式字符串 /// 进行简单的转义处理。只处理 \ 和 " /// 识别Json中的值
在C#中,我们主要依靠`System.Text.Json`或`Newtonsoft.Json`库(也称为Json.NET)来实现字符串与JSON对象之间的转换。本篇文章将详细探讨如何使用这两种方法进行转换。 首先,让我们关注`System.Text.Json`,这是...
在Java开发中,将Java对象转换为JSON字符串或字符串数组是一项常见的任务,特别是在与前端交互、数据存储或者网络传输时。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也...
当你从服务器获取到一个JSON格式的响应或者需要将数据以JSON格式发送到服务器时,就需要将JSON字符串转换为JSON对象,或者反之。本篇将详细介绍如何在JavaScript中进行这样的操作。 首先,要将JSON字符串转换为JSON...