Jackson : was expecting double-quote to start field name

A simple example to use Jackson to convert a JSON string to a Map.

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

Problem

When the program is executed, it hits following error message

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]

Solution

In JSON specification, it requires the use of double quotes for field names. To enable Jackson to handle the unquoted field name, add JsonParser.Feature.ALLOW_UNQUOTED_FIELD_NAMES in the ObjectMapper configuration.

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();
	}	
 
  }
}

Output

{name=mkyong}
Note
In JSON, unquoted field names are non-standard, and should be avoided.

References

  1. Wikipedia : JSON
  2. JsonParser.Feature JavaDoc
Tags :

About the Author

mkyong
Founder of Mkyong.com and HostingCompass.com, love Java and open source stuff. Follow him on Twitter, or befriend him on Facebook or Google Plus. If you like my tutorials, consider make a donation to these charities.

Comments

  • http://[email protected] AbraĆ£o Isvi

    Interesting, thanks for sharing.

  • Pingback: Top HTML, CSS and Java Tutorials Websites GoBestOnline()