将json格式的字符串转换为java中的json对象并获取键值对值


最近做项目经常碰到json格式的字符串,为了便于取值,所以就想将json格式的字符串转换为json对象,然后通过json对象的方法获取键值对的value值。

 

一:使用json对象的话,需要在项目中导入以下jar包:

commons-beanutils.jar

commons-collections-3.2.1.jar

commons-lang-2.6.jar

commons-logging-1.2.jar

ezmorph-1.0.6.jar

json-lib-2.4-jdk15.jar

xom-1.1.jar

 注:最好导入上面提到的版本的jar包,如果其中一个导入的是最新版本的jar包【目前已知的是commons-lang-2.6.jar不可以使用新版本的jar包,其他的暂时未测试过】,那么可能就会出现以下问题:

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/lang/exception/NestableRuntimeException......

以上jar包下载地址如下:

http://pan.baidu.com/s/1bnvRG7d

 

二:一个简单的小例子,仅供参考

 1 import net.sf.json.JSONArray;
 2 import net.sf.json.JSONObject;
 3 
 4 
 5 public class JsonTest {
 6      public static void main(String[] args) throws Exception {
 7         /*
 8          * 将json格式的字符串转换成json对象,然后根据json对象的方法获取键值对值
 9          * json格式的字符串{"name":"why","age":28,"class":["math","english","history"]}
10          * 分别获取name、age、classes对应的value值
11          * */
12         String jsonStr = "{\"name\":\"why\",\"age\":28,\"classes\":[\"math\",\"english\",\"history\"]}";
13         System.out.println("jsonStr=="+jsonStr);
14         
15         JSONObject jsonObj = JSONObject.fromObject(jsonStr);
16         System.out.println("jsonObj=="+jsonObj);
17         
18         String nameStr = jsonObj.getString("name");
19         int age = jsonObj.getInt("age");
20         String ageStr = jsonObj.getString("age");
21         JSONArray classesObj = jsonObj.getJSONArray("classes");
22         
23         System.out.println("nameStr=="+nameStr);
24         System.out.println("age=="+age);
25         System.out.println("ageStr=="+ageStr);
26         System.out.println("classesObj=="+classesObj);
27         
28         for (int i = 0; i < classesObj.size(); i++) {
29             System.out.println("element " + i + " :" + classesObj.get(i));
30         }
31         
32         String addStrValue = "boy";
33         jsonObj.put("sex", addStrValue);
34         System.out.println("jsonObj=="+jsonObj);
35          
36         
37     }
38 }

 代码运行结果:

jsonStr=={"name":"why","age":28,"classes":["math","english","history"]}
jsonObj=={"name":"why","age":28,"classes":["math","english","history"]}
nameStr==why
age==28
ageStr==28
classesObj==["math","english","history"]
element 0 :math
element 1 :english
element 2 :history
jsonObj=={"name":"why","age":28,"classes":["math","english","history"],"sex":"boy"}

 

三:本文章参考资料
1、java与json的互相转换:http://blog.sina.com.cn/s/blog_663bfedc0100tap3.html

2、Json lib 抛出 NestableRuntimeException:http://blog.csdn.net/wugewuge/article/details/8074272

 

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM