我想通过使用"jyaml“将yaml字符串转换为json字符串,请有人帮助我解决这个问题。
YAML字符串:-
Korea: www.gozoculture.com: default: jhfjfjfj www.5plus5.gov.mt: default: jhfjfjfj www.ces.gov.mt: default: cesDefault user5: chennal5 isp: Tata DoCoMo: chennalisp1 Hathway: chennalIsp Hong Kong: chennalisp2 Aircel: chennalIspaircel Airtel: chennalIspAirtel studiodefault: KoreaStudioDefault www.wwe.com: default: wweDefault user2: chennal2 user1: chennal1 country: FR: francecountryChennal HK: HongkongCountryChennal IN: IndaiChennal DE: GermanyCountryChennal我的预期产出:-
{
"Singapoor": {
"studiodefault": "chennal default singapoor site",
"www.gozoculture.com": {
"default": "chennalDefault1",
"user1": "ch1,ch2,ch3"
},
"country": {
"FR": "franceChennal",
"DE": "GermanyChennal",
"IN": "indiaChennal"
},
"www.justice.gov.mt": {
"default": "justiceDefault"
},
"www.wwe.com": {
"default": "wwechennalDefault",
"user2": "ch4,ch5,ch6"
},
"isp": {
"Vodafone Broadband": "vodafoneChennal2",
"Idea cellular": "ideaChennal",
"Airtel": "aritelChennal1"
},
"www.enemalta.com": {
"default": "chennalDefault2",
"user3": "ch7,ch8,ch9"
}
}
}java代码:-
private static String convertToJson(String yamlString) {
Yaml yaml= new Yaml();
Map<String,Object> map= (Map<String, Object>) yaml.load(yamlString);
JSONObject jsonObject=new JSONObject(map);
return jsonObject.toString();
}我所得到的输出:-
"Korea": "www.gozoculture.com: default: jhfjfjfj www.5plus5.gov.mt: default: jhfjfjfj www.ces.gov.mt: default: cesDefault user5: chennal5 isp: Tata DoCoMo: chennalisp1 Hathway: chennalIsp Hong Kong: chennalisp2 Aircel: chennalIspaircel Airtel: chennalIspAirtel studiodefault: KoreaStudioDefault www.wwe.com: default: wweDefault user2: chennal2 user1: chennal1 country: FR: francecountryChennal HK: HongkongCountryChennal IN: IndaiChennal DE: GermanyCountryChennal"我的替代yaml输入文件:-
Singapoor:
www.gozoculture.com:
default: chennalDefault1
user1: ch1,ch2,ch3
isp:
Airtel: aritelChennal1
Vodafone Broadband: vodafoneChennal2
Idea cellular: ideaChennal
www.enemalta.com:
default: chennalDefault2
user3: ch7,ch8,ch9
www.justice.gov.mt:
default: justiceDefault
studiodefault: chennal default singapoor site
www.wwe.com:
default: wwechennalDefault
user2: ch4,ch5,ch6
country:
FR: franceChennal
IN: indiaChennal
DE: GermanyChennal当我试图上传具有"user2: ch4,ch5,ch6“等多个值的单键时。对于这种情况,我的代码不起作用。我得到了一个例外:
Jun 18, 2015 5:29:23 PM com.sun.jersey.spi.container.ContainerResponse logException
SEVERE: Mapped exception to response: 500 (Internal Server Error)
javax.ws.rs.WebApplicationException: org.ho.yaml.exception.YamlException: Error near line 4: Unterminated inline value发布于 2015-06-18 10:23:09
缩进对于yaml文件至关重要。如果您的yaml文件与问题相同,则输出是完全正确的。为了实现预期的json,首先必须修复yaml文件。
为了获得预期的json输出,您的yaml文件应该如下所示。
Singapoor:
studiodefault: "chennal default singapoor site"
www.gozoculture.com:
default: "chennalDefault1"
user1: "ch1,ch2,ch3"
country:
FR: "franceChennal"
DE: "GermanyChennal"
IN: "indiaChennal"
www.justice.gov.mt:
default: "justiceDefault"
www.wwe.com:
default: "wwechennalDefault"
user2: "ch4,ch5,ch6"
isp:
Vodafone Broadband: "vodafoneChennal2"
Idea cellular: "ideaChennal"
Airtel: "aritelChennal1"
www.enemalta.com:
default: "chennalDefault2"
user3: "ch7,ch8,ch9"发布于 2015-06-18 12:21:10
得到蛇形的http://www.java2s.com/Code/Jar/s/Downloadsnakeyaml15sourcesjar.htm,它可能是为you.it工作,是为我工作。
https://stackoverflow.com/questions/30910876
复制相似问题