java中string类型转换成map java中string类型转换成map - 做梦的人- - 博客园
jackson序列化和反序列化(单个对象、列表) https://blog.csdn.net/subuser/article/details/19127003
org.codehaus.jackson.annotate.JsonIgnore与com.fasterxml.jackson.annotation.JsonIgnore https://blog.csdn.net/jly4758/article/details/45312977
JSON数据转换之net.sf.json包的使用 JSON数据转换之net.sf.json包的使用 - 娜娜娜娜小姐姐 - 博客园
[转]fastjson常见问题 [转]fastjson常见问题 - dirgo - 博客园
采用Gson解析含有多种JsonObject的复杂json 采用Gson解析含有多种JsonObject的复杂json
GSON使用之对特殊字符的转换的处理 GSON使用之对特殊字符的转换的处理 - cnsdhzzl - 博客园
json串反转义(消除反斜杠) https://blog.csdn.net/hongweigg/article/details/79526182
解析带有反斜杠的json数据 https://blog.csdn.net/sky_xin/article/details/84857420
java怎么从键盘输入数据 https://blog.csdn.net/java__liyong/article/details/79770542
####################
示例:json转map
json字符串中原始内容含有反斜杠的处理办法
例如:
jsonStr字符串的值为{"user":{"status":null,"description":"xxxxxxxxxx","name":"cao123@_-.comgx-_.com5"}}
那么如何把jsonStr转换为Map呢?
因为直接使用fastjson和gson都会报错,那么可以采用如下方式处理:
public static void main(String[] args)
{
Scanner in =new Scanner(System.in);
String str=in.next();//输入cao123@_-.comgx-_.com5
User user=new User();
user.setDesc("xxxxx");
user.setName(str);
net.sf.json.JSONObject json = net.sf.json.JSONObject.fromObject(user);
String tmp=json.toString();
System.out.println(tmp);
net.sf.json.JSONObject jsonObject=net.sf.json.JSONObject.fromObject(tmp);
Map mapRet = com.alibaba.fastjson.JSON.parseObject(jsonObject.toString(), Map.class);
System.out.println(mapRet);
}
public static void main(String[] args)
{
String tmp="{"name":"cao123@_-.comgx-_.com5","desc":"xxxxx"}";
net.sf.json.JSONObject jsonObject=net.sf.json.JSONObject.fromObject(tmp);
Map mapRet = com.alibaba.fastjson.JSON.parseObject(jsonObject.toString(), Map.class);
System.out.println(mapRet);
}
####################
备注:
"{"user": {"status": null, "description": "cao123@_-.comgx-_.com3", "name": "cao123@_-.comgx-_.com5"}}";
############
标准文章:
介绍 JSON http://www.json.org/json-zh.html
public static void main(String[] args)
{
String str = null;
Map ret = null;
//json字符串值支持字母+数字
str = "{"key":"abcdefghigklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"}";
ret = com.alibaba.fastjson.JSON.parseObject(str, Map.class);
System.out.println(ret);
System.out.println();
//json值支持数字
str = "{"key1":123}";
ret = com.alibaba.fastjson.JSON.parseObject(str, Map.class);
System.out.println(ret);
System.out.println();
//json值支持boolean+null
str = "{"key1":true,"key2":false,"key3":null}";
ret = com.alibaba.fastjson.JSON.parseObject(str, Map.class);
System.out.println(ret);
System.out.println();
//json值支持数组["vaule1","vaule2"]
str = "{"key1":["vaule1","vaule2"]}";
ret = com.alibaba.fastjson.JSON.parseObject(str, Map.class);
System.out.println(ret);
System.out.println();
//特殊字符全集为 `~!@#$%^&*()_-+={[}]|:;"'<,>.?/
//去除"的特殊字符全集为`~!@#$%^&*()_-+={[}]|:;'<,>.?/
//所以"这两个特殊字符在后面有讲解,其实也是可以写在value中的
str = "{"key":"`~!@#$%^&*()_-+={[}]|:;'<,>.?/"}";
ret = com.alibaba.fastjson.JSON.parseObject(str, Map.class);
System.out.println(ret);
System.out.println();
//value的值可以直接使用正斜杠/
str = "{"key":"xx/xx"}";
ret = com.alibaba.fastjson.JSON.parseObject(str, Map.class);
System.out.println(ret);
System.out.println();
//value的值可以使用b代表键盘退格键
str = "{"key":"xxbxx"}";
ret = com.alibaba.fastjson.JSON.parseObject(str, Map.class);
System.out.println(ret);
System.out.println();
//value的值可以使用f代表换页符
str = "{"key":"xxfxx"}";
ret = com.alibaba.fastjson.JSON.parseObject(str, Map.class);
System.out.println(ret);
System.out.println();
//value的值可以使用n代表换行
str = "{"key":"xxnxx"}";
ret = com.alibaba.fastjson.JSON.parseObject(str, Map.class);
System.out.println(ret);
System.out.println();
//value的值可以使用r代表换回车
str = "{"key":"xxrxx"}";
ret = com.alibaba.fastjson.JSON.parseObject(str, Map.class);
System.out.println(ret);
System.out.println();
//value的值可以使用t代表键盘tab按钮
str = "{"key":"xxtxx"}";
ret = com.alibaba.fastjson.JSON.parseObject(str, Map.class);
System.out.println(ret);
System.out.println();
//value的值可以使用反斜杠uXXXX)格式表示Unicode转义的字符, 其中XXXX是16进制数字
str = "{"key":"xxu2345xx"}";
ret = com.alibaba.fastjson.JSON.parseObject(str, Map.class);
System.out.println(ret);
System.out.println();
//value的值自身包含反斜杠,例如为xxxx时
str = "{"key":"xxxx"}";
ret = com.alibaba.fastjson.JSON.parseObject(str, Map.class);
System.out.println(ret);
System.out.println();
//value的值自身包含双引号,例如为xx"xx时
str = "{"key":"xx"xx"}";
ret = com.alibaba.fastjson.JSON.parseObject(str, Map.class);
System.out.println(ret);
System.out.println();
}
JSON 语法 JSON 语法 | 菜鸟教程
合法的对象json字符串要以{开头
合法的数组json字符串要以[开头
JSON在线: http://www.bejson.com/
如果页面输入了xxxx 那么把这个字符串放入json中就变成了xxxx
public static void main(String[] args)
{
Scanner in =new Scanner(system.in - 这个网站可出售。 - 最佳的System 来源和相关信息。);
String str=in.next();//输入cao123@_-.comgx-_.com5
User user=new User();
user.setDesc("yyyy");
user.setName(str);
net.sf.json.JSONObject json = net.sf.json.JSONObject.fromObject(user);
System.out.println(json);
}