jackson中处理json中键不为双引号的情况

jackson中处理json中键不为双引号的情况

在jackson中,如果要处理如下的情况:

file内容:

id: "station0111",
title: "莘庄",
description: "莘庄",
pin: "hidden",
fill: "#4d5e6d",
x: "0.2972",
y: "0.6264",
zoom: "12",
distance: null

以下为代码:

File file=new File("E:\\temp\\line1.json");
ObjectMapper mapper = new ObjectMapper();
JsonNode jsonNode=null;

try {
		jsonNode= mapper.readTree(file);
	} catch (JsonProcessingException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	} catch (IOException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}

会发现出错:
org.codehaus.jackson.JsonParseException:
Unexpected character (‘n’ (code 99)): was expecting double-quote to start field name
at [Source: java.io.StringReader@7c87c24a; line: 1, column: 3]

其实是因为标准json中,要求键和值其实都是要双引号的.
但如果非要设置键值为非双引号不可的话,则需要设置JsonParser.Feature.ALLOW_UNQUOTED_FIELD_NAMES,如下:

File file=new File("E:\\temp\\line1.json");
ObjectMapper mapper = new ObjectMapper();
JsonNode jsonNode=null;

mapper.configure(JsonParser.Feature.ALLOW_UNQUOTED_FIELD_NAMES, true);

try {
	jsonNode= mapper.readTree(file);
	} catch (JsonProcessingException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	} catch (IOException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}

这样就可以正确读取json文件中键不带双引号的情况了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值