JSON格式以及基本用法

一、JSON的标准格式

里面的是一个对象,如果是多个对象,则用逗号间隔,即{},{},这样就组成了一个对象序列,为了辨别开始和结束,则需要加上[]才能进行传递,则实际传递的形式应该是[{},{}],如果只要传递一个对象,则{}的形式就可以了。接下来就是对象属性的表现方式了,属性必须在”“里面,属性与值之间用:隔开,属性之间用,来分隔,如果属性的值为数组,则用[]包括起来,这样实际传递的数据格式可能有:1、{“属性1”:值1,”属性2”:值2},如果值为字符串,则也需要用”“括起来(下同)。2、{“属性1”:值1,”属性2”:[值1,值2]},其中属性2是一个数组,包含了值1和值2。3、{“属性1”:值1,”属性2”:{“属性a”:值a,”属性b”:[值b,值c]}},这个比较复杂了,属性2是个对象,这个对象由包含属性a和属性b,属性b又是一个数组包含值b和值c。我想这些应该是最基本了,其余的就是在此基础上的拓展而已。

二、JSON与其他格式的互相转化

【jAVA————->JSON】

/**
 *后台怎么拼装JSON格式的字符串
 */

public String javaToJSON() {
    JSONObject jsonObj = new JSONObject();
    jsonObj.put("username", "张三");
    jsonObj.put("password", "123456");
    return jsonObj.toString();//{"password", "123456","username", "张三"}
}

【JSON———–>XML】

/**
 *JSON格式的字符串转换成XML格式的字符串
 */

public String jsonToXML() {
    String jsonStr = "{\"password\":\"123456\",\"username\":\"张三\"}";
    JSONObject json = JSONObject.fromString(jsonStr);
    XMLSerializer xmlSerializer = new XMLSerializer();
    xmlSerializer.setRootName("user_info");
    xmlSerializer.setTypeHintsEnabled(false);
    String xml = xmlSerializer.write(json);
    return xml;
}

返回结果;

<?xml version="1.0" encoding="utf-8"?>
<user_info>
    <password>123456</password>
    <username>刘梦冰</username>
</user_info>

【XML———–>JSON】

/**
 *XML格式的字符串转换成JSON格式的字符串
 */
public String xmlToJSON(){
    String xml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><user_info><password>123456</password><username>张三</username></user_info>";
    JSON json=XMLSerializer.read(xml);
    return json.toString();
}

public mapToJSON(Map<Object,Object>map)
{
   return JSONObject.fromobject(map).tostring();
}

【Map ———->json:】

/**
* 将map集合转换为json语句表示
*
* @param map 集合
* @return 得到的Map解析的json语句
*/
public String mapToJson(Map<Object, Object> map) {
    JSONObject jsonObject = JSONObject.fromObject(map);     //将集合解析为 json对象语句(net.sf.json.JSONObject)
    return jsonObject.toString();                              //返回json语句
}

【json————>Map:】

/** 
 * 将json格式封装的字符串数据转换成java中的Map数据 
 * @return 
 */  
private Map<Object, Object> jsonToMap(String json) {  
    Map<Object, Object> map = new HashMap<Object, Object>();  
    JSONObject jsonMap = JSONObject.fromObject(json);   JSONObject(net.sf.json.JSONObject)
    Iterator<String> it = jsonMap.keys();  
    while(it.hasNext()) {  
        String key = (String) it.next();  
        String value = JSONObject.fromObject(jsonMap.get(key));
        map.put(key, value);  
    }  
    return map;  
} 

【JSON————->List】

/** 
 * 将json格式封装的列表数据转换成java的List数据 
 * @return 
 */  
private static Object JSON2List(String json) {    
    return JSONArray.toList(JSONArray.fromObject(json));  
} 

【JSON——->简单JavaBean/复杂JavaBean】

/**
 * 只包含基本数据类型的简单实体类(getter、setetr方法略)
 */
public class SimpleUser {

    private int id;

    private String name;

    private String sex;

    private int age;

    private String province;

}

/**
 * 包含复杂类型的实体类
 */
public class ComplexUser extends SimpleUser {

    private List<String> address;

    public ComplexUser() {
    }

    public ComplexUser(int id, String name,
            String sex, int age, String province,
            List<String> address) {
        super(id, name, sex, age, province);
        this.address = address;
    }

    public List<String> getAddress() {
        return address;
    }

    public void setAddress(List<String> address) {
        this.address = address;
    }

}

【JSON————->简单JavaBean】

/** 
 * 将json格式封装的简单实体类型数据转换成简单类型的javabean(只包含简单的数据类型)
 */  
private Object JSONtoSimpleBean() {  
    String jsonStr = "{\"age\":23,\"id\":123,\"name\":\"tt_2009\"," +  
            "\"province\":\"上海\",\"sex\":\"男\"}";  
    JSONObject jsonBean = JSONObject.fromObject(jsonStr);  
    return JSONObject.toBean(jsonBean, SimpleUser.class);  
}  

【JSON—————->复杂JavaBean】

/** 
 * 将json格式封装的复杂实体数据转换成复杂类型的javabean(对象中包含其它复杂对象,如收货地址用List存储)
 */  
private static Object JSON2ComplexBean() {  
    String jsonStr = "{\"address\":[\"北京\",\"上海\",\"广州\"]," +  
            "\"age\":23,\"id\":123,\"name\":\"tt_2009\",\"province\":\"上海\",\"sex\":\"\"}";  
    JSONObject jsonBean = JSONObject.fromObject(jsonStr);  
    return JSONObject.toBean(jsonBean, ComplexUser.class);  
}  
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值