`

Jackson 双引号的问题

 
阅读更多

当用执行下面的代码的时候

 

  String json = "{name:\"chenhailong\"}";
 
  Map<String,String> map = new HashMap<String,String>();
  ObjectMapper mapper = new ObjectMapper();
 
  map = mapper.readValue(json, new TypeReference<HashMap<String,String>>(){});

 就会出现下面的错误

org.codehaus.jackson.JsonParseException: 
   Unexpected character ('n' (code 110)): was expecting double-quote to start field name
   at [Source: java.io.StringReader@7c87c24a; line: 1, column: 3]

 下面提出解决方案

package com.mkyong.jsonexample;
 
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import org.codehaus.jackson.JsonParseException;
import org.codehaus.jackson.JsonParser;
import org.codehaus.jackson.map.JsonMappingException;
import org.codehaus.jackson.map.ObjectMapper;
import org.codehaus.jackson.type.TypeReference;
 
public class JsonMapExample {
    public static void main(String[] args) {
 
	String json = "{name:\"mkyong\"}";
 
	Map<String,String> map = new HashMap<String,String>();
	ObjectMapper mapper = new ObjectMapper();
 
	mapper.configure(JsonParser.Feature.ALLOW_UNQUOTED_FIELD_NAMES, true);
 
	try {
 
		map = mapper.readValue(json, 
                         new TypeReference<HashMap<String,String>>(){});	
		System.out.println(map);
 
	} catch (JsonParseException e) {
		e.printStackTrace();
	} catch (JsonMappingException e) {
		e.printStackTrace();
	} catch (IOException e) {
		e.printStackTrace();
	}	
 
  }
}

 

 

 

0
0
分享到:
评论

相关推荐

    Java如何处理json字符串value多余双引号

    然而,在处理JSON字符串时,可能会出现一些格式错误,比如value值中包含多余的双引号,这种情况可能会影响数据的正确解析和使用。本文将深入探讨如何在Java中处理这种情况,并提供一个详细的示例代码来帮助开发者...

    CXF,RESTEASY返回格式为JSON时,如果类型为String的值为数值时,JSON中引号消失的问题解决

    然而,当JSON中的字符串值实际上代表数字时,可能会出现一个特殊问题:JSON解析器会尝试将这些字符串转换为数值类型,导致原本应被引号包围的字符串丢失引号。这个问题通常发生在JSON序列化过程中,即从Java对象转化...

    彻底根治Spring @ResponseBody JavaScript HTML特殊字符

    我们经常会遇到一个问题:当使用Spring MVC的`@ResponseBody`注解将后端处理结果直接转化为HTTP响应体时,如果这个结果中包含HTML特殊字符,如尖角号、引号、按位与符号等,浏览器可能会误解析,导致安全问题或显示...

    阿里 json 和jackson 完整Jar包

    字符串(在双引号中) 逻辑值(true 或 false) 数组(在方括号中) 对象(在花括号中) null 更多关于JSON的数据格式的说明可以参考JSON官方网站:http://www.json.org/json-zh.html。下面是一个JSON文件的例子: {...

    shell脚本编写入门资料

    双引号将一些“单词”括起来形成单个的“值”,单引号则将字符串视为普通的字符,而不是变量的引用或者命令。反引号在双引号内部使用时,表示需要对反引号所括起来的内容进行解析。 编写Shell脚本的基本步骤 1. ...

    maven spring mvc 4.3.14 框架整合

    本框架使用Maven整合jar包,完全按照SpringFramework官方规范整合,加入Druid数据源及SpringJDBC,使用servlet3.1容器...另:结合jackson解决@ResponseBody返回html特殊字符问题,彻底根治尖括号,单引号,双引号问题。

    json 入门教程

    1. **字符串(String)**:JSON中的字符串需要用双引号包围,支持大部分Unicode字符,特殊字符如"\","/","\b","\f","\n","\r","\t"需要转义。 2. **数字(Number)**:JSON中的数字可以表示整数或浮点数,例如`...

    JSON处理jar包

    键是字符串,用双引号括起来,后面跟着冒号,然后是值。键值对之间用逗号分隔。例如:`{"name": "张三", "age": 30}`。 2. 数组:数组是以方括号 `[]` 包围的一系列值。值可以是任意类型的JSON数据,包括对象、数组...

    java 解析 生成 json

    对象是以大括号{}包围的键值对集合,键用双引号包围,值可以是各种数据类型,包括字符串、数字、布尔值、null、对象或数组。数组则用方括号[]表示,包含零个或多个值,值之间用逗号分隔。 **2. Java中的JSON库** 在...

    使用JSON.parse将json字符串转换成json对象的时候会出错

    例如,双引号在JSON字符串中用来界定字符串的开始和结束,而如果字符串内部包含了双引号字符,就需要使用反斜杠(\)进行转义,如"\"example\"”。否则,JSON.parse会误解该双引号为字符串的结束标记,从而引发语法...

    Java环境JSON包

    2. 对象:用花括号 {} 包裹,键值对之间用逗号分隔,键用双引号包围,例如:`{"name": "John", "age": 30}`。 3. 数组:用方括号 [] 包裹,元素之间用逗号分隔,例如:`["apple", "banana", "orange"]`。 二、Java...

    CUE文件格式说明.docx

    - **PERFORMER**:定义演唱者,如`PERFORMER "Michelle Jackson"`,同样遵循字符限制和双引号规则。 - **SONGWRITER**:指明乐曲编曲者,如`SONGWRITER "冯曦妤"`,同样注意字符限制和双引号使用。 - **REM**:通常...

    json转化依赖的jar文件

    3. JSON支持的数据类型:字符串(双引号包围)、数字、布尔值(true/false)、null、对象和数组。 二、Java中的JSON处理库 1. Jackson:Jackson是Java中常用的JSON库,它提供了一套完整的API,包括`ObjectMapper`...

    Json转对象忽略大小写

    标准的JSON规范要求键(key)必须使用双引号括起,并且大小写敏感。然而,有时我们可能遇到JSON字符串的键首字母大写的情况,这与Java中的驼峰命名规则不一致,导致反序列化时出现匹配问题。标题“Json转对象忽略大...

    Java使用JSON传递字符串注意事项解析

    问题的关键在于,传递的字符串两边出现了额外的双引号,这导致在被调用方的switch语句中无法匹配成功,执行了默认的default语句。 三、问题分析 问题的根源在于,调用方在传递字符串参数时,错误地使用了JSON序列化...

    json解析程序(未完成)

    对象是键值对的集合,键用双引号包围,键值对之间用逗号分隔;数组是有序元素的集合,元素可以是任意类型,元素之间也用逗号分隔。 2. Java JSON库: - Jackson:高性能的库,支持JSON序列化和反序列化,提供注解...

    JSON入门Java篇-7-JSON总结.rar

    - 值:JSON支持字符串(双引号包围)、数字、布尔值(true/false)、null,以及上述的对象和数组。 2. Java中的JSON库: - Jackson:Jackson是Java最常用的JSON库之一,提供了高效的序列化和反序列化功能。它有三...

    json-all.zip

    在JSON中,数据以键值对的形式存储,键必须用双引号括起来,值可以是字符串、数字、布尔值、数组、对象或null。例如: ```json { "name": "John", "age": 30, "city": "New York" } ``` 这个示例表示一个包含三...

    Ajax内容及Json包.rar

    键是字符串,用双引号包围,值可以是各种数据类型,如字符串、数字、布尔值、数组、对象或者null。例如: ```json { "name": "John", "age": 30, "city": "New York" } ``` Ajax和JSON结合,允许前端通过...

    Json开发用到的jar包

    - JSON的语法规范,如键值对必须用双引号括起,对象以大括号{}表示,数组以方括号[]表示。 - JSON的类型对应Java的基本类型或容器类型,如JSON的字符串对应Java的String,JSON对象对应Java的Map,JSON数组对应Java的...

Global site tag (gtag.js) - Google Analytics