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.java的pojo轉成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而已。