数据加载中……
Java处理json学习
 

  php5处理json就2个函数;方便的很;但常用的java处理起来就很麻烦;通常用JSON-lib许多包;

我总结了一个简单的java处理json的方法如下:

1:下载另外一个java的小包就可以了;  http://www.JSON.org/java/json_simple.zip

里面有源码和文档例题和编程的lib包;编程只需要json_simple.jar这个包就行;才10几k。

2:在后端java中解析json的代码

a:把json字符串变成java数组对象形式:

String s="[0,{""1"":{""2"":{""3"":{""4"":[5,{""6"":7}]}}}}]";
  Object obj=JSONValue.parse(s);
  JSONArray array=(JSONArray)obj;
  System.out.println(array.get(1));
b
把java对象形式变成json字符串:

  JSONObject obj2=new JSONObject();
  obj2.put("phone","123456");
  obj2.put("zip","7890");
  obj.put("contact",obj2);
  System.out.print(obj);

c把java数组形式变成json字符串

  JSONArray array=new JSONArray();
  array.add("hello");
  array.add(new Integer(123));
  array.add(new Boolean(false));
  array.add(null);
  array.add(new Double(123.45));
  array.add(obj2);//see above
  System.out.print(array);

3:在前端的javascript中解析json的代码:

var Json = {//把javascript的数组或对象转换成Json格式的字符串
 toString: function(obj){
 switch(typeof(obj)){
   case 'string':
    return '"' + obj.replace(/(["""])/g, '""$1') + '"';
   case 'array':
    return '[' + obj.map(Json.toString).join(',') + ']';
   case 'object':
    var string = [];
    for (var property in obj) string.push(Json.toString(property) + ':' + Json.toString(obj[property]));
    return '{' + string.join(',') + '}';
   case 'number':
    if (isFinite(obj)) break;
   case false:
    return 'null';
  }
  return String(obj);
 },//把Json格式的字符串转换成javascript的数组或对象
 evaluate: function(str, secure){
  return ((typeof(str) != 'string') || (secure && !str.test(/^("("".|[^""""n"r])*?"|[,:{}"["]0-9."-+Eaeflnr-u "n"r"t])+?$/))) ? null : eval('(' + str + ')');
 }
}

posted on 2009-05-11 06:27 jrose 阅读(1794) 评论(0)  编辑  收藏


只有注册用户登录后才能发表评论。


网站导航: