JSON基础_常用用法

一、首先介绍json常用用法。(这里介绍json-lib-2.2.2-jdk15.jar包的)

1、json字符串的正确写法

String jsonString = "{"name":"zhangsan","age":20,"noWork":true,"address":"changjiangsanxia"}";

String jsonArrayString= "[{"name":"wang","id":"001"},{"name":"lisi","id":"002"}]";

String jsonArrayString2 = "["zhangsan","lisi","wangwu"]";

String jsonObjectString = "{"stuNames":["zhangsan","xiaoming"]}";

2、常用json的转换用法  (这里介绍net.sf.json.JSONObject和net.sf.json.JSONArray两种)

json字符串转换为JSONObject 对象:

       JSONObject json = JSONObject.fromObject(jsonString);

JSONObject对象转换为字符串: 【JSONArray对象转换为字符串,同理】

       String test = json.toString(); 或 String test = json+"";

        Sting test = (String)json;//这种写法是错误的。

JSONObject对象转换为某个Bean类,则使用JSONObject.toBean(JSONObejct json,Class class);

json字符串转换为JSONArray对象:

JSONArray jsonArr = JSONArray.fromObject(jsonArrayString);
  for (int j = 0; j < jsonArr.size(); j++) {
   System.out.println(jsonArr.get(j));
  }

输出结果是:

{"name":"wang","id":"001"}
{"name":"lisi","id":"002"}

JSONArray jsonArr = JSONArray.fromObject(jsonArrayString2);
  for (int j = 0; j < jsonArr.size(); j++) {
   System.out.println(jsonArr.get(j));
  }

输出结果是:

zhangsan
lisi
wangwu

从json字符串中获取JSONArray对象:

 JSONObject jsonObj = JSONObject.fromObject(jsonObjectString);
 JSONArray jsonArr = jsonObj.getJSONArray("stuNames");

为JSONObject赋默认值,要注意:

1、JSONObject json1 = JSONObject.fromObject("{}");//这样写是正确的

2、JSONObject json2 = JSONObject.fromObject("");//这样写是错误的。

JSONObject json22 = JSONObject.fromObject("错误汉字");//这样写是错误的。

会报异常:

net.sf.json.JSONException: A JSONObject text must begin with '{' at character 0 of …………

3、JSONObject json3 = JSONObject.fromObject("null");//这样写也是正确的

但之后在对json3进行其他操作,如不进行条件非空的判断就会报异常

例如:json2.put("susccess","ok");

会报异常:net.sf.json.JSONException: null object …………

使用第三种赋值的正确写法:

JSONObject json2 = JSONObject.fromObject("null");
  if(null != json2 && !"null".equals(json2.toString()))
         json2.put("susccess","ok");
  System.out.println(json2.toString());

 二、两种方式转换为字符串

  String test = null + "";
  String test2 = (String)null;
  System.out.println(test instanceof String);//true
  System.out.println(test2 instanceof String);//false

  System.out.println(test2 == null);//true
  System.out.println(test.getClass());//class java.lang.String
  System.out.println(test2.getClass());//报错NullPointerException

三、java基本类型转换(自己总结的规律)

 包装类型转换为基本类型,一般使用parseInt(String)、parseLong(String);

例如:

       String test11 = 2 + "";
        int hei = Integer.parseInt(test11);

        long l = Long.parseLong(test11);

基本类型转换为包装类型,一般使用valueOf(int i)、 valueOf(long l);

例如:

       long l = 0;

       Long big1 = Long.valueOf(l);
       Long big2 = Long.valueOf(test11);

 以上内容仅是本人测试过的,项目经验,如有异议,建议留言提出,本人乐于接纳学习。

猜你喜欢

转载自faithlove.iteye.com/blog/2213151
今日推荐