JSON中存儲的是key:value,其實在編程的時候我們會遇到很多都是key:value的形式。比如:map,java對象(一個對象的一個屬性只會有一個值),資料庫中key:value對應著裡面存儲的一個數據,redis的本質就是key:value。所以你會發現key:value很有用。 1.將任 ...
JSON中存儲的是key:value,其實在編程的時候我們會遇到很多都是key:value的形式。比如:map,java對象(一個對象的一個屬性只會有一個值),資料庫中key:value對應著裡面存儲的一個數據,redis的本質就是key:value。所以你會發現key:value很有用。
1.將任何形式的內容轉換成key:value形式的字元串(觀察輸出),比如json文件。
{ "name": "Tom", "age" : 12, "book":{"1":"Math","2":"Chinese","3":"English"}, "interest" : ["football","basketball"], "student" : {"name" :"Tom","age":22,"book":"String"} }
到網上搜一下,有很多人都寫了將.json文件轉換成字元串的方式,再轉換成JSONObject。目前只找到GSON,直接輸入json文件的位置,直接輸出一個類似於JSONObject的東西(還沒仔細研究),其他的方法還沒有找到。
2.將string轉換成JSONObject。
package json; import java.awt.List; import java.util.ArrayList; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; public class TestJson { public static void main(String[] args) { //將JSON文件讀取成字元串形式,目前還沒有找到哪個好的方法直接轉,網上都可以搜到。 //GSON可以直接裝,但是GSON的包跟這裡的包又不一樣 Util fr = new Util(); String str = fr.ReadFile("src/json1.json"); //看看把json文件讀取成字元串的形式。 System.out.println(str.toString()); //將字元串轉換成JSONObject。通過JSONObject可以獲取任何東西。 //還可以遍歷 JSONObject student1 = JSON.parseObject(str); String name = (String) student1.get("name"); //獲取的是字元串。 String book = student1.getString("book"); //可以將string變成JSONObject JSONObject bookJson = JSON.parseObject(book); System.out.println(book); //這裡獲取的是JSONObject JSONObject bookObj = student1.getJSONObject("book"); String b1 = bookObj.getString("1"); String b2 = bookObj.getString("2"); String b3 = bookObj.getString("3"); System.out.println(b1+","+b2+","+b3); String interest = student1.getString("interest"); JSONArray interestArr = student1.getJSONArray("interest"); String arr1 = interestArr.getString(0); String arr2 = interestArr.getString(1); System.out.println(arr1+","+arr2); //通過映射的方式。直接獲得。 JSONArray inArr = student1.getObject("interest", JSONArray.class); //如果value值是一個對象,可以直接映射成一個對象。 Student stu = student1.getObject("student", Student.class); System.out.println(name); System.out.println(interest); System.out.println(stu.toString()); } }
package json; import java.util.List; public class Student { public Student() { } public Student(String name, Integer age, String book) { this.name = name; this.age = age; this.book = book; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } public String getBook() { return book; } public void setBook(String book) { this.book = book; } private String name; private Integer age; private String book; @Override public String toString() { return "Student [name=" + name + ", age=" + age + ", book=" + book + "]"; } }
問題:如果對象Student中包含有List<String> interest,怎麼映射呢?對應的json中value是什麼樣式呢?如果您有相關的地址歡迎留言學習。