String 转 map 求方法

蓝黑十子星 2017-08-10 03:23:41

格式:
{name=测试, purchase={purchasePayStatusName=已支付, purchasePayStatus=2}, storeListMap=[{number=2, itemName=蓝博兴_T1}, {number=2, itemName=蓝博兴_T2}], age=20}

求转成map 或者转成 json 格式 求大神帮忙

...全文
1037 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
runyyf 2017-08-15
  • 打赏
  • 举报
回复
gson很不错,可以直接转成对象
lifewell1 2017-08-15
  • 打赏
  • 举报
回复
字符串格式都没有引号没办法直接转,你还不如手动写成map呢,或者拆分字符串拆成map
sjjk 2017-08-15
  • 打赏
  • 举报
回复

JSONObject jso = JSONObject.fromObject("{name='测试', purchase={purchasePayStatusName='已支付', purchasePayStatus=2}, storeListMap=[{number=2, itemName='蓝博兴_T1'}, {number=2, itemName='蓝博兴_T2'}], age=20}");
用到的jar包: json-lib-2.4-jdk15.jar ezmorph-1.0.6.jar commons-lang-2.5.jar commons-collections-3.2.1.jar commons-beanutils-1.8.3.jar
zuhizo 2017-08-13
  • 打赏
  • 举报
回复
1.先处理原字符串:将“=”替换为“:”,然后再从左往右匹配冒号,判断冒号后的下一个字符不为“[”或“{”时插入左双引号,继续匹配,当匹配到“,”或“]”或“}”时插入右双引号。2.json转换即可。
解开者 2017-08-13
  • 打赏
  • 举报
回复
map.toString()的结果不能直接用json库解析 似乎只能手写
Mrlw 2017-08-11
  • 打赏
  • 举报
回复
用alibaba的fastjson或者google的Gson,鉴于你是Map<String,Object>,用GSON就好了 你可以参考:http://blog.csdn.net/guotong1988/article/details/8315653 String string="你那一串东西"; Map<String, String> map = GsonUtils.getJson(string, Map.class);System.out.println();
蓝黑十子星 2017-08-11
  • 打赏
  • 举报
回复
有没有大神帮忙看看?
蓝黑十子星 2017-08-10
  • 打赏
  • 举报
回复
引用 4 楼 zzxx1994617 的回复:
建议你针对这个结构写一个bean 然后用net.sf.json直接反序列化到对象里面
我的结构是Map<String,Object> 里面的key都是动态的不固定的。不能用bean
starmoon1994 2017-08-10
  • 打赏
  • 举报
回复
建议你针对这个结构写一个bean 然后用net.sf.json直接反序列化到对象里面
蓝黑十子星 2017-08-10
  • 打赏
  • 举报
回复
引用 1 楼 muming721 的回复:
导入json-lib.jar 核心代码

private String javaBean2JsonByConfig(PerformanceStandardMain main) {
		JsonConfig jsonConfig = new JsonConfig();
		jsonConfig.setExcludes(new String[] {"company","auditUser","createUser"});
		 jsonConfig.setCycleDetectionStrategy(CycleDetectionStrategy.LENIENT);
		 JSONObject jsonObject =JSONObject.fromObject(main, jsonConfig);
		 return jsonObject.toString();
	}
 {name=测试, purchase={purchasePayStatusName=已支付, purchasePayStatus=2}, storeListMap=[{number=2, itemName=蓝博兴_T1}, {number=2, itemName=蓝博兴_T2}], age=20}
我是要想把这个string 转成map 因为这个不是一个json格式,用了很多工具 com.alibaba.fastjson.JSONObject;net.sf.json.JSONObject;com.google.gson.Gson; 这几个都试过,都转换不了,网上有说得手动切割,求算法
蓝黑十子星 2017-08-10
  • 打赏
  • 举报
回复
引用 1 楼 muming721 的回复:
导入json-lib.jar 核心代码

private String javaBean2JsonByConfig(PerformanceStandardMain main) {
		JsonConfig jsonConfig = new JsonConfig();
		jsonConfig.setExcludes(new String[] {"company","auditUser","createUser"});
		 jsonConfig.setCycleDetectionStrategy(CycleDetectionStrategy.LENIENT);
		 JSONObject jsonObject =JSONObject.fromObject(main, jsonConfig);
		 return jsonObject.toString();
	}
请问能不能写详细点,我现在是需要 将
 {name=测试, purchase={purchasePayStatusName=已支付, purchasePayStatus=2}, storeListMap=[{number=2, itemName=蓝博兴_T1}, {number=2, itemName=蓝博兴_T2}], age=20}
muming721 2017-08-10
  • 打赏
  • 举报
回复
导入json-lib.jar 核心代码

private String javaBean2JsonByConfig(PerformanceStandardMain main) {
		JsonConfig jsonConfig = new JsonConfig();
		jsonConfig.setExcludes(new String[] {"company","auditUser","createUser"});
		 jsonConfig.setCycleDetectionStrategy(CycleDetectionStrategy.LENIENT);
		 JSONObject jsonObject =JSONObject.fromObject(main, jsonConfig);
		 return jsonObject.toString();
	}

51,396

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧