java在后台如何将前台传过来的json格式数据转换为map?

{"a":0,"b":1,"c":1,"d":1}这是前台传过来的数据格式,请问如何转换为map?... {"a":0,"b":1,"c":1,"d":1}
这是前台传过来的数据格式,请问如何转换为map?
展开
 我来答
匿名用户
2018-03-06
展开全部
  • import com.alibaba.fastjson.JSON;  

  • import com.alibaba.fastjson.JSONObject;  

  • import java.util.Map;  

  • /** 

  • * JSON字符串自动转换 

  • * Created by zkn on 2016/8/22. 

  • */  

  • public class JsonToMapTest01 {  

  • public static void main(String[] args){  

  • String str = "{\"0\":\"zhangsan\",\"1\":\"lisi\",\"2\":\"wangwu\",\"3\":\"maliu\"}";  

  • //第一种方式  

  • Map maps = (Map)JSON.parse(str);  

  • System.out.println("这个是用JSON类来解析JSON字符串!!!");  

  • for (Object map : maps.entrySet()){  

  • System.out.println(((Map.Entry)map).getKey()+"     " + ((Map.Entry)map).getValue());  

  • }  

  • //第二种方式  

  • Map mapTypes = JSON.parseObject(str);  

  • System.out.println("这个是用JSON类的parseObject来解析JSON字符串!!!");  

  • for (Object obj : mapTypes.keySet()){  

  • System.out.println("key为:"+obj+"值为:"+mapTypes.get(obj));  

  • }  

  • //第三种方式  

  • Map mapType = JSON.parseObject(str,Map.class);  

  • System.out.println("这个是用JSON类,指定解析类型,来解析JSON字符串!!!");  

  • for (Object obj : mapType.keySet()){  

  • System.out.println("key为:"+obj+"值为:"+mapType.get(obj));  

  • }  

  • //第四种方式  

  • /** 

  • * JSONObject是Map接口的一个实现类 

  • */  

  • Map json = (Map) JSONObject.parse(str);  

  • System.out.println("这个是用JSONObject类的parse方法来解析JSON字符串!!!");  

  • for (Object map : json.entrySet()){  

  • System.out.println(((Map.Entry)map).getKey()+"  "+((Map.Entry)map).getValue());  

  • }  

  • //第五种方式  

  • /** 

  • * JSONObject是Map接口的一个实现类 

  • */  

  • JSONObject jsonObject = JSONObject.parseObject(str);  

  • System.out.println("这个是用JSONObject的parseObject方法来解析JSON字符串!!!");  

  • for (Object map : json.entrySet()){  

  • System.out.println(((Map.Entry)map).getKey()+"  "+((Map.Entry)map).getValue());  

  • }  

  • //第六种方式  

  • /** 

  • * JSONObject是Map接口的一个实现类 

  • */  

  • Map mapObj = JSONObject.parseObject(str,Map.class);  

  • System.out.println("这个是用JSONObject的parseObject方法并执行返回类型来解析JSON字符串!!!");  

  • for (Object map: json.entrySet()){  

  • System.out.println(((Map.Entry)map).getKey()+"  "+((Map.Entry)map).getValue());  

  • }  

  • String strArr = "{{\"0\":\"zhangsan\",\"1\":\"lisi\",\"2\":\"wangwu\",\"3\":\"maliu\"}," +  

  • "{\"00\":\"zhangsan\",\"11\":\"lisi\",\"22\":\"wangwu\",\"33\":\"maliu\"}}";  

  • // JSONArray.parse()  

  • System.out.println(json);  

  • }  

  • }  

459402930
推荐于2018-03-06 · TA获得超过444个赞
知道小有建树答主
回答量:292
采纳率:83%
帮助的人:180万
展开全部
你找一个解析json的包,Gson 或者 fastjson ,把你收到的那个字符串 转换为 JsonObject对象,然后你用Map的操作方式来操作JsonObject就行了。顺便说下,json的格式比较复杂,它比Map的格式要复杂些,所以,你不可能把json完全转换为Map,如果格式是按你说的{"a":0,"b":1,"c":1,"d":1} 格式是固定的话,那你自己把JsonObject转换成Map就可以了
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
为爱而战之疯狂
推荐于2018-03-07
知道答主
回答量:25
采纳率:0%
帮助的人:18.6万
展开全部
你是想转换成map再取值吗?还是有什么别的需求?如果是想根据键取值可以这样取值
//转换为json键值对象
JSONObject jsonObject = new JSONObject().fromObject(result);
//根据json的键获得对应的值
String value= jsonObject.getString(key);

希望能帮到您。
追问
谢谢!!
如果要转成map,那应该怎么做呢?
还有,我从前台传回来的值有中文,到后台就变成乱码了,但是我后台里也有写
request.setCharacterEncoding("UTF-8");
为什么还是乱码呢?
追答
把提交数据方式改为post方式,前台跟后台编码一致就不会出问题!至于json怎么转map我在网上试了很多方法都失败了,你可以研究研究。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
_稻草级DS
2018-03-07
知道答主
回答量:15
采纳率:100%
帮助的人:2.9万
展开全部
JSON数据,在后台接收到时,以JSONObject为例;
JSONObject js_obj = JSONObject.parse(接收到前台传递JSON的字符串);
转换为json对象,map 我们都清楚,其实是以键队的形式存储的,
所以,我们在已知json属性的前提下将js_obj对象值取出,赋值给新的map对象即可。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
放心交给我罢
2018-03-06
知道答主
回答量:22
采纳率:100%
帮助的人:6.6万
展开全部
搞不定你现在是JSON还为什么要转成MAP 你在这里不就可以直接获取数据了吗

如:
function(data){//data是你的{"a":0,"b":1,"c":1,"d":1}
这里直接data.a就可以获取0了 data.b就可以获取1了
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(16)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式