当前位置: 代码迷 >> Java Web开发 >> java 解释json有关问题
  详细解决方案

java 解释json有关问题

热度:76   发布时间:2016-04-16 22:15:13.0
java 解释json问题
前台:
<script type="text/javascript">
$(document).ready(function(){
var chaozhu=new Object();
var idarray= new Array;
for(var i=0;i<6;i++){
chaozhu.idx=0;
chaozhu.vaul=i;
idarray.push(chaozhu);
chaozhu={};
}
  $("#xiuga").click(function(){
 var cht=$.toJSON(idarray);
  alert(cht);
      $.ajax({
      type: "POST",
      url: "shangc.action",
      data: {cht:cht}, 
      dataType: 'json',
      async: false,
      success: function(){}
  
   }); 
     }); 
});
</script>
后台接收到的值:
[{"idx":0,"vaul":0},{"idx":0,"vaul":1},{"idx":0,"vaul":2},{"idx":0,"vaul":3},{"idx":0,"vaul":4},{"idx":0,"vaul":5}]
请问我用java 怎么解释成map或数组呢???
 JSONObject jsonObj = JSONObject.fromObject(cht);  出错




------解决方案--------------------

用JSONArray
http://blog.sina.com.cn/s/blog_5920510a01011vu8.html
------解决方案--------------------
引用:
你这个json数组 和map 有什么有什么关系。。


说实话,我也没有发现什么关系来着
不过我觉得你可以把他们封装成为一个对象,然后这些对象放到List集合里面
,当然对应的转换方法,你可以百度一下,我猜大概是类似于convert吧!

------解决方案--------------------
用google gson
你这个出来后是个list
Gson gson = new Gson();
List<Map<String,String>> list= gson.fromJson(s,
new TypeToken<List<Map<String,String>>>() {
}.getType());
循环list
------解决方案--------------------
commons-lang3-3.1.jar如果这个包是3的话在java调用JSONObject...的时候就会报错。可能换成commons-lang2-..的包就好了,3里没有JSONObject的相关方法。看看是不是这个原因。
------解决方案--------------------
附上解析字符串的代码:
String str="[{'idx':0,'vaul':0},{'idx':0,'vaul':1},{'idx':0,'vaul':2},{'idx':0,'vaul':3},{'idx':0,'vaul':4},{'idx':0,'vaul':5}]"; 
JSONArray ja =JSONArray.fromObject(str); 
ListIterator li=ja.listIterator();
while(li.hasNext()){
Map<String,Integer> jo=(Map<String, Integer>) li.next();
System.out.println("输出:idx="+jo.get("idx")+",vaul="+jo.get("vaul"));
}
------解决方案--------------------

String str="[{'idx':0,'vaul':0},{'idx':0,'vaul':1},{'idx':0,'vaul':2},{'idx':0,'vaul':3},{'idx':0,'vaul':4},{'idx':0,'vaul':5}]"; 
JSONArray ja=JSONArray.fromObject(str);
List<Map> list=JSONArray.toList(ja, Map.class);//把你的json传转成list里面是map类型
for(Map map:list){
System.out.println(map);
}
  相关解决方案