JSON应用 java&js

来源:互联网 发布:对网络直播的利弊 编辑:程序博客网 时间:2024/05/09 08:34


JSON 入门
2009-01-13 12:09
最近在研究 在 java 和 js之间传递对象 用JSON ,真是方便的要死!!
两个工作 1.下载相关的 jar包 可以到 http://json-lib.sourceforge.net/   去下载
json-lib-2.2.3-jdk15.jar ,注意,还必须要有一下这些
•  jakarta commons-lang 2.4
•  jakarta commons-beanutils 1.7.0
•  jakarta commons-collections 3.2
•  jakarta commons-logging 1.1.1
•  ezmorph 1.0.6
如需用到json、xml之间的转换需要 xom-1.1.jar
2.下载 相关的 js
json.js (http://www.JSON.org/json2.js)
这样 就OK了。
下面 说下使用方法,有两种需求,一种是 从java 转 js ,二是从 js 到 java ,
不管哪种需求,先 在 java 端把相应的类 建好,例如
public class User{
     private String name;
     public String getName(){
       return this.name;
     }
     public void setName(String name){
       this.name = name;
     }
}
(一)如果从 java 到 js ,则 新建 java对象
User user = new User();user.setName("张三"),
然后用
JsonObject jsonObject = JsonObject.fromObject(user)
就可以把普通对象转换为 json对象,然后将其
String text = jsonObject.toString()
得到的字符串text传给 JS,在 js端引入JSON.js,然后对得到的 字符串 text 使用
var jsObj = JSON.parse(text);
便得到了 js端的对象jsObj,再直接对
var name = jsObj.name;
就可以了得到 user 的 name 的值 "张三" 了;
(二) 如果从 js 到 java, 则 在 js端,
var jsObj = new Object(); jsObj.name = "张三";
然后 用
var text = JSON.stringify(jsObj);
得到 字符串 text, 再把text传给 java ,
java 拿到 text 后
JSONObject jso = JSONObject.fromObject(text);
(如果不需要转化为User类型或者没有对应的User类,则可直接用 jso.get(key);来取值)
   User user= (User) jso.toBean(jso, User.class);
便可以得到 user 对象了

http://hi.baidu.com/kakarot%5Fjava/blog/item/c82dd0d51db942c350da4bdd.html
顺,不妄喜;逆,不惶馁;安,不奢逸;危,不惊惧;胸有惊雷而面如平湖者,可拜上将军!A:你为什么这么牛x?B:积累的.A:怎么才能积累到您的程度呢?B: 我从20岁开始做到了一件事情,直到今天,而且尽可能地保证不间断.A: 到底是什么?B: 我每天保证自己有2个小时在学习新的东西.
java 解析 json文件
2009-02-19 15:19
配置复杂结构的数据文件,一般都采用xml的形式,但解析起来比较费力,所以想到了JSON,可以用JSON文件存储复杂结构的数据文件,然后通过JAVA解析
准备工作 1.需要 java解析JSON的jar包,参考http://hi.baidu.com/kakarot%5Fjava/blog/item/c82dd0d51db942c350da4bdd.html
2.在工程下新建json文件test.json 内容为
{
"name" : "张三",
"age":23,
"sex":"男"
}
3.新建工具类
package com.kakarot;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import net.sf.json.JSONObject;
import te.User;
/**
* FileName:Util4JSON.java<br>
* Info:<br>
*
* CurrentVersion:v1.0.0<br>
* LastVersion:<br>
* Modifier: ModifyDate:<br>
* Info:<br>
*
* CreateVersion:v1.0.0<br>
* Author:曹博 CreateDate:Feb 19, 2009,3:03:52 PM<br>
*
*/
public class Util4JSON
{
    @SuppressWarnings("unchecked")
    public static Object getObjectFromFileOfJSON(String classPath,
            String encoding, Class clazz)
    {
        ClassLoader loader = Thread.currentThread().getContextClassLoader();
        InputStream input = loader.getResourceAsStream(classPath);
        BufferedReader reader = null;
        Object obj = null;
        try {
            reader = new BufferedReader(new InputStreamReader(input, encoding));
            StringBuffer buffer = new StringBuffer();
            String line = reader.readLine(); // 读取第一行
            while (line != null) { // 如果 line 为空说明读完了
                buffer.append(line); // 将读到的内容添加到 buffer 中
                line = reader.readLine(); // 读取下一行
            }
            String str = buffer.toString();
            JSONObject object = JSONObject.fromObject(str);
            obj = JSONObject.toBean(object, User.class);
        }
        catch (Exception e) {
            e.printStackTrace();
            obj = null;
        }
        return obj;
    }
}
4.新建测试文件
package com.kakarot;
import te.User;
/**
*FileName:Test.java<br>
*Info:<br>
*
*CurrentVersion:v1.0.0<br>
*LastVersion:<br>
*Modifier:            ModifyDate:<br>
*Info:<br>
*
*CreateVersion:v1.0.0<br>
*Author:曹博         CreateDate:Feb 19, 2009,3:18:34 PM<br>
*
*/
public class Test
{
    public static void main(String[] args)
    {
        User user = (User) Util4JSON.getObjectFromFileOfJSON("test.json", "utf-8", User.class);
        System.out.println(user.getName());
    }
}