既然是说json那就先简单介绍一下什么是json吧。
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于JavaScript(Standard ECMA-262 3rd Edition - December 1999)的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。这些特性使JSON成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成。
json的具体数据交换格式:(存的是张飞的个人信息包括姓名、年龄、地址(城市、街道))
{"address":{"street":"和兴路","city":"哈尔滨"},"age":22,"name":"张飞"}
如何在编译器中生成改格式呢?
我们定义一个getJson()方法用于生成此种格式,代码如下:
getJson()方法
public static String getJson() throws Exception{ String strName = "张飞"; int niAge = 22; //生成一个json对象 JSONObject json = new JSONObject(); //向该json对象中通过put(String,Object)方法,添加属性和该属性对应的值 json.put("name", strName); json.put("age", niAge); //json对象中的地址包括城市和街道,所以将地址定义成一个json对象 JSONObject strAddress = new JSONObject(); String strCity = "哈尔滨"; String strStreet = "和兴路"; strAddress.put("city", strCity); strAddress.put("street", strStreet); json.put("address", strAddress); System.out.println(json.toString()); return json.toString(); }
下面我们看一个方法来介绍一下,对json数据转换格式的解析:
我们定义了一个jsonParse(String strJson)的方法用于解析该格式,具体代码如下:
jsonParse(String strJson):
public static void jsonParse(String strJson) throws Exception{ //创建json对象 JSONObject json = new JSONObject(strJson); //通过json的getString(String)方法获得对应属性的属性值 String name = json.getString("name"); int age = json.getInt("age"); //通过json的getJSONObject(String)方法获得此json对象中定义的json对象(就是对json的嵌套使用) JSONObject address = json.getJSONObject("address"); String city = address.getString("city"); String street = address.getString("street"); //输入获得的json对象中属性值 System.out.println("姓名:"+name+",年龄:"+age+",城市:"+city+",街道:"+street); }
我们通过一个main函数调用上面两个方法看一下具体的结果:
main函数:
public class Json { public static void main(String[] args) throws Exception { //调用getJson()方法 String strJson = getJson(); //调用jsonParse(String)方法 jsonParse(strJson); } }
输入结果为:
{"address":{"street":"和兴路","city":"哈尔滨"},"age":22,"name":"张飞"}
姓名:张飞,年龄:22,城市:哈尔滨,街道:和兴路
在实际中getJson()方法和jsonParse(String)方法应该写在类Json中,与main()方法并列,这里分开只是为了代码更加清晰的展现。