然是说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()方法并列,这里分开只是为了代码更加清晰的展现。