json相關問題

1、

[{"bindId":1,"accountId":2,"deviceId":"3"},{"bindId":1,"accountId":2,"deviceId":"3"},{"bindId":1,"accountId":2,"deviceId":"3"}]

這種格式要用如下來解析:



2、List<String>轉json

List<String> xxx = new ArrayList<String>();

xxx.add("aaa");

xxx.add("bbb");

xxx.add("ccc");

Map<String,String> paramMap = new HashMap<String,String>();

paramMap.put("xxx",JSONArray.fromobject(xxx.toString()));


HashMap<String,String> p = new HashMap<String,String>();

p.put("param",JSONArray.fromobject(paramMap .toString()));

Json格式是:

{param={"xxx":"[\"aaa\",\"bbb\",\"ccc\"]"}

3.javapojo轉成json

import com.thoughtworks.xstream.XStream;

public class NoticeResponse {
    private static XStream xstream;
    private Boolean result;
    private String returnCode;
    private String message;
    private Object data;

    public NoticeResponse() {
    }

    public Boolean getResult() {
        return this.result;
    }

    public void setResult(Boolean result) {
        this.result = result;
    }

    public String getReturnCode() {
        return this.returnCode;
    }

    public void setReturnCode(String returnCode) {
        this.returnCode = returnCode;
    }

    public String getMessage() {
        return this.message;
    }

    public void setMessage(String message) {
        this.message = message;
    }

    public Object getData() {
        return this.data;
    }

    public void setData(Object data) {
        this.data = data;
    }

    private static XStream getXStream() {
        if(xstream == null) {
            xstream = new XStream();
            xstream.autodetectAnnotations(true);
            xstream.alias("pushResponse", NoticeResponse.class);
        }

        return xstream;
    }

    public String toXml() {
        return "<?xml version=\'1.0\' encoding=\'UTF-8\'?>\r\n" + getXStream().toXML(this);
    }

    public static NoticeResponse fromXml(String sXml) {
        return (NoticeResponse)getXStream().fromXML(sXml);
    }

    public static void main(String[] args) {
        NoticeResponse req = new NoticeResponse();
        req.setMessage("成功");
        req.setResult(Boolean.valueOf(true));
        req.setReturnCode("200");
        req.setData((Object)null);
        System.out.print(req.toXml());
    }
}




import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.StringWriter;
import java.util.ArrayList;
import java.util.List;
import org.codehaus.jackson.JsonGenerationException;
import org.codehaus.jackson.JsonParseException;
import org.codehaus.jackson.map.JsonMappingException;
import org.codehaus.jackson.map.ObjectMapper;
import org.codehaus.jackson.map.DeserializationConfig.Feature;
import org.codehaus.jackson.map.type.TypeFactory;

public class JacksonHelper {
    private static ObjectMapper toJSONMapper = new ObjectMapper();
    private static ObjectMapper fromJSONMapper = new ObjectMapper();

    public JacksonHelper() {
    }

    public static String toJSON(Object obj) {
        ObjectMapper mapper = toJSONMapper;
        StringWriter writer = new StringWriter();

        try {
            mapper.writeValue(writer, obj);
        } catch (JsonGenerationException var4) {
            throw new RuntimeException(var4);
        } catch (JsonMappingException var5) {
            throw new RuntimeException(var5);
        } catch (IOException var6) {
            throw new RuntimeException(var6);
        }

        return writer.toString();
    }

    public static void toJSON(Object obj, OutputStream stream, String charset) {
        ObjectMapper mapper = toJSONMapper;

        try {
            OutputStreamWriter e = new OutputStreamWriter(stream, charset);
            mapper.writeValue(e, obj);
        } catch (JsonGenerationException var5) {
            throw new RuntimeException(var5);
        } catch (JsonMappingException var6) {
            throw new RuntimeException(var6);
        } catch (Exception var7) {
            throw new RuntimeException(var7);
        }
    }

    public static <T> T fromJSON(String json, Class<T> clazz) {
        ObjectMapper mapper = fromJSONMapper;

        try {
            return mapper.readValue(json, clazz);
        } catch (JsonParseException var4) {
            throw new RuntimeException(var4);
        } catch (JsonMappingException var5) {
            throw new RuntimeException(var5);
        } catch (IOException var6) {
            throw new RuntimeException(var6);
        }
    }

    public static <T> T fromJSON(InputStream json, Class<T> clazz) {
        ObjectMapper mapper = fromJSONMapper;

        try {
            return mapper.readValue(json, clazz);
        } catch (JsonParseException var4) {
            throw new RuntimeException(var4);
        } catch (JsonMappingException var5) {
            throw new RuntimeException(var5);
        } catch (IOException var6) {
            throw new RuntimeException(var6);
        }
    }

    public static <T> boolean toJSONList(List<T> list) {
        String jsonVal = null;

        try {
            jsonVal = toJSONMapper.writeValueAsString(list);
        } catch (JsonGenerationException var3) {
            throw new RuntimeException(var3);
        } catch (JsonMappingException var4) {
            throw new RuntimeException(var4);
        } catch (IOException var5) {
            throw new RuntimeException(var5);
        }

        return jsonVal != null;
    }

    public static <T> List<T> fromJSONList(String jsonVal, Class<?> clazz) {
        List list = null;

        try {
            list = (List)fromJSONMapper.readValue(jsonVal, TypeFactory.collectionType(ArrayList.class, clazz));
            return list;
        } catch (JsonParseException var4) {
            throw new RuntimeException(var4);
        } catch (JsonMappingException var5) {
            throw new RuntimeException(var5);
        } catch (IOException var6) {
            throw new RuntimeException(var6);
        }
    }

    static {
        fromJSONMapper.configure(Feature.FAIL_ON_UNKNOWN_PROPERTIES, false);
        fromJSONMapper.configure(org.codehaus.jackson.JsonParser.Feature.ALLOW_SINGLE_QUOTES, true);
    }
}

應用:

NoticeResponse noticeResponse = new NoticeResponse();
noticeResponse.setResult(true);
noticeResponse.setMessage("push sucess");
noticeResponse.setReturnCode("200");

return JacksonHelper.toJSON(noticeResponse);


4.JSONObject get非空

JSONObject jsonObject = JSONObject.fromObject(response);
String code = (String)jsonObject.get("code");
appCode = (String)jsonObject.get("data");
String msg = (String)jsonObject.get("msg");

直接get,而不用getString,因爲如果有爲空的,getString就會報空指針異常,所以只用get,強轉爲String.


5.equals的用法

if ("0".equals(code))

 

把常量放在前面,這樣不用拋空指針異常;即使code=null,返回結果也是false而已。



xxx.add("aaa");
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章