編輯:關於Android編程
一,把數組,對象,List,Map等數據結構轉換成Json字符串
import java.lang.reflect.Type; import java.util.ArrayList; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; import com.google.gson.Gson; import com.google.gson.reflect.TypeToken; public class Main { public static class Student{ private String name; int age; private String address; private Date dateOfBirth; public Student() { } public Student(String name ,int age,String address, Date dateOfBirth) { this.name = name; this.age=age; this.address = address; this.dateOfBirth = dateOfBirth; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } public Date getDateOfBirth() { return dateOfBirth; } public void setDateOfBirth(Date dateOfBirth) { this.dateOfBirth = dateOfBirth; } } public static void main(String[] args) { Gson gson=new Gson(); /*數組轉化成Json串*/ int[] numbers = {1, 1, 2, 3, 5, 8, 13}; String[] days = {"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"}; String numbersJson=gson.toJson(numbers); String daysJson = gson.toJson(days); System.out.println("數組轉化成Json字符串:"); System.out.println("numbersJson = " + numbersJson); System.out.println("daysJson = " + daysJson); /*List轉換成Json串,元素是字符串*/ List輸出結果:names = new ArrayList (); names.add("Alice"); names.add("Bob"); names.add("Carol"); names.add("Mallory"); String jsonNames = gson.toJson(names); System.out.println("List轉換成Json串,元素是字符串"); System.out.println("jsonNames = " + jsonNames); /*List轉換成Json串,元素是對象*/ Student a = new Student("Alice", 20,"Apple St", new Date(2000, 10, 1)); Student b = new Student("Bob", 23,"Banana St", null); Student c = new Student("Carol",42, "Grape St", new Date(2000, 5, 21)); Student d = new Student("Mallory",24, "Mango St", null); List students = new ArrayList (); students.add(a); students.add(b); students.add(c); students.add(d); String jsonStudents = gson.toJson(students); System.out.println("List轉換成Json串,元素是對象"); System.out.println("jsonStudents = " + jsonStudents); // Converts JSON string into a collection of Student object. Type type = new TypeToken >(){}.getType(); System.out.println("Json串轉換成List,元素是對象"); List
studentList = gson.fromJson(jsonStudents, type); for (Student student : studentList) { System.out.println("student.getName() = " + student.getName()); } /*Map轉化成Json串,value是字符串*/ Map colors = new HashMap (); colors.put("BLACK", "#000000"); colors.put("RED", "#FF0000"); colors.put("GREEN", "#008000"); colors.put("BLUE", "#0000FF"); colors.put("YELLOW", "#FFFF00"); colors.put("WHITE", "#FFFFFF"); String jsonmap = gson.toJson(colors); System.out.println("Map轉化成Json串,value是字符串"); System.out.println("json = " + jsonmap); // Convert JSON string back to Map. Type type1 = new TypeToken
數組轉化成Json字符串: numbersJson = [1,1,2,3,5,8,13] daysJson = ["Sun","Mon","Tue","Wed","Thu","Fri","Sat"] List轉換成Json串,元素是字符串 jsonNames = ["Alice","Bob","Carol","Mallory"] List轉換成Json串,元素是對象 jsonStudents = [{"name":"Alice","age":20,"address":"Apple St","dateOfBirth":"Nov 1, 3900 12:00:00 AM"},{"name":"Bob","age":23,"address":"Banana St"},{"name":"Carol","age":42,"address":"Grape St","dateOfBirth":"Jun 21, 3900 12:00:00 AM"},{"name":"Mallory","age":24,"address":"Mango St"}] Json串轉換成List,元素是對象 student.getName() = Alice student.getName() = Bob student.getName() = Carol student.getName() = Mallory Map轉化成Json串,value是字符串 json = {"WHITE":"#FFFFFF","BLUE":"#0000FF","YELLOW":"#FFFF00","GREEN":"#008000","BLACK":"#000000","RED":"#FF0000"} Json串轉換成Map,value是字符串 map.get = #FFFFFF map.get = #0000FF map.get = #FFFF00 map.get = #008000 map.get = #000000 map.get = #FF0000 Map轉化成Json串,value是對象 json = {"Mallory":{"name":"Mallory","age":24,"address":"Mango St"},"Alice":{"name":"Alice","age":20,"address":"Apple St","dateOfBirth":"Nov 1, 3900 12:00:00 AM"},"Bob":{"name":"Bob","age":23,"address":"Banana St"},"Carol":{"name":"Carol","age":42,"address":"Grape St","dateOfBirth":"Jun 21, 3900 12:00:00 AM"}} Json串轉換成Map,value是對象 map1.get = Mallory map1.get = Alice map1.get = Bob map1.get = Carol
1,單個對象Object,Json串是一個JsonObject,冒號“:”前面的key是java對象的變量名,冒號“:”後面的Value是java對象的變量值
2,數組和List,Json串是一個JsonArray
3,Map的Json串是一個JsonObject,冒號“:”前面的key是Map的Key值,冒號“:”後面的Value是Map的Value值
二,Json串轉換成Java對象時,主要看冒號“:”後面的Value的數據類型是什麼,這樣Java對象的字段類型就是什麼,可以說Value的數據類型和字段的數據類型是對應的
{ "success":true, "data": { "list": [{"dataType":0, "distance":435.2473470455821, "isFav":0,"parkCode":"0270000558", "parkName”:武漢金融港路場", "parkID":558, "remark":"", "parkType":0, "responsible":"", "responseTel":"13297062676", "consultTel":"", "coordinateX":114.428102, "coordinateY":30.462254," coordinateEntrance":"", "rateInfo":"工作日", "introduce":"", "appState":3, "paymentNoticeMinute":0, "rentCount":0, "rentSwitch":0, "spaceCount":42, "totalCount":42, "imageName":"", "fullImage":"", "unitFee":0.0, "unit":0, "isRoadSide":0, "rentOvertimeTimes":0.0, "reservationKeepTime":0, "supportPayType":0, "address":"光谷大道金融港", "state":1}, {"dataType":0, "distance":568.3080108478586, "isFav":0, "parkCode":"0270000249", "parkName":"武漢光谷金融港停車場", "parkID":249, "remark":"", "parkType":3, " “responsible":"", "responseTel":"123456789", "consultTel":"", "coordinateX":114.427728, "coordinateY":30.460922, "coordinateEntrance":"114.427005,30.461393,1,1;114.427863,30.462163,1,1;114.428469,30.462171,1,1;114.427885,30.461404,2,1;114.428514,30.461424,2,1;114.428851,30.461397,3,1,1;114.427351,30.462163,3,1,1;", "rateInfo":"白天3元/小時\n晚上1元/小時", "introduce":"", "appState":15, "paymentNoticeMinute":2, "rentCount":0, "rentSwitch":1, "spaceCount":-95, "totalCount":300, "imageName":"7.jpg", "fullImage":"/picture/park/249/7.jpg", "unitFee":0.01, "unit":20, "isRoadSide":0, "rentOvertimeTimes":0.0, "reservationKeepTime":0, "supportPayType":0, "address":"武漢市光谷金融港\n武漢市光谷金融港B4座12層", "state":1 } ] } }
package com.hust.map; public class Park { int dataType; int rentCount; int parkCode; String parkName; //停車場名字 int parkID; String remark; int parkType; String responsible; String responseTel; String consultTel; double coordinateX;//經度 double coordinateY;//緯度 String coordinateEntrance; String rateInfo; //收費標准 String introduce; int appState; int paymentNoticeMinute; int spaceCount; //可租車位 int totalCount; //總車位 String imageName; String fullImage; int reservationKeepTime; int isRoadSide; double rentOvertimeTimes; double unitFee; int unit; int rentSwitch; int supportPayType; int isFav; double distance; //距離 String address; //地址 int state; public double getCoordinateX() { return coordinateX; } public void setCoordinateX(double coordinateX) { this.coordinateX = coordinateX; } public double getCoordinateY() { return coordinateY; } public void setCoordinateY(double coordinateY) { this.coordinateY = coordinateY; } public String getParkName() { return parkName; } public void setParkName(String parkName) { this.parkName = parkName; } public int getSpaceCount() { return spaceCount; } public void setSpaceCount(int spaceCount) { this.spaceCount = spaceCount; } public int getTotalCount() { return totalCount; } public void setTotalCount(int totalCount) { this.totalCount = totalCount; } public String getRateInfo() { return rateInfo; } public void setRateInfo(String rateInfo) { this.rateInfo = rateInfo; } public double getDistance() { return distance; } public void setDistance(double distance) { this.distance = distance; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } public Park(int dataType, int rentCount, int parkCode, String parkName, int parkID, String remark, int parkType, String responsible, String responseTel, String consultTel, double coordinateX, double coordinateY, String coordinateEntrance, String rateInfo, String introduce, int appState, int paymentNoticeMinute, int spaceCount, int totalCount, String imageName, String fullImage, int reservationKeepTime, int isRoadSide, double rentOvertimeTimes, double unitFee, int unit, int rentSwitch, int supportPayType, int isFav, double distance, String address, int state) { super(); this.dataType = dataType; this.rentCount = rentCount; this.parkCode = parkCode; this.parkName = parkName; this.parkID = parkID; this.remark = remark; this.parkType = parkType; this.responsible = responsible; this.responseTel = responseTel; this.consultTel = consultTel; this.coordinateX = coordinateX; this.coordinateY = coordinateY; this.coordinateEntrance = coordinateEntrance; this.rateInfo = rateInfo; this.introduce = introduce; this.appState = appState; this.paymentNoticeMinute = paymentNoticeMinute; this.spaceCount = spaceCount; this.totalCount = totalCount; this.imageName = imageName; this.fullImage = fullImage; this.reservationKeepTime = reservationKeepTime; this.isRoadSide = isRoadSide; this.rentOvertimeTimes = rentOvertimeTimes; this.unitFee = unitFee; this.unit = unit; this.rentSwitch = rentSwitch; this.supportPayType = supportPayType; this.isFav = isFav; this.distance = distance; this.address = address; this.state = state; } public int getDataType() { return dataType; } public void setDataType(int dataType) { this.dataType = dataType; } public int getRentCount() { return rentCount; } public void setRentCount(int rentCount) { this.rentCount = rentCount; } public int getParkCode() { return parkCode; } public void setParkCode(int parkCode) { this.parkCode = parkCode; } public int getParkID() { return parkID; } public void setParkID(int parkID) { this.parkID = parkID; } public String getRemark() { return remark; } public void setRemark(String remark) { this.remark = remark; } public int getParkType() { return parkType; } public void setParkType(int parkType) { this.parkType = parkType; } public String getResponsible() { return responsible; } public void setResponsible(String responsible) { this.responsible = responsible; } public String getResponseTel() { return responseTel; } public void setResponseTel(String responseTel) { this.responseTel = responseTel; } public String getConsultTel() { return consultTel; } public void setConsultTel(String consultTel) { this.consultTel = consultTel; } public String getCoordinateEntrance() { return coordinateEntrance; } public void setCoordinateEntrance(String coordinateEntrance) { this.coordinateEntrance = coordinateEntrance; } public String getIntroduce() { return introduce; } public void setIntroduce(String introduce) { this.introduce = introduce; } public int getAppState() { return appState; } public void setAppState(int appState) { this.appState = appState; } public int getPaymentNoticeMinute() { return paymentNoticeMinute; } public void setPaymentNoticeMinute(int paymentNoticeMinute) { this.paymentNoticeMinute = paymentNoticeMinute; } public String getImageName() { return imageName; } public void setImageName(String imageName) { this.imageName = imageName; } public String getFullImage() { return fullImage; } public void setFullImage(String fullImage) { this.fullImage = fullImage; } public int getReservationKeepTime() { return reservationKeepTime; } public void setReservationKeepTime(int reservationKeepTime) { this.reservationKeepTime = reservationKeepTime; } public int getIsRoadSide() { return isRoadSide; } public void setIsRoadSide(int isRoadSide) { this.isRoadSide = isRoadSide; } public double getRentOvertimeTimes() { return rentOvertimeTimes; } public void setRentOvertimeTimes(double rentOvertimeTimes) { this.rentOvertimeTimes = rentOvertimeTimes; } public double getUnitFee() { return unitFee; } public void setUnitFee(double unitFee) { this.unitFee = unitFee; } public int getUnit() { return unit; } public void setUnit(int unit) { this.unit = unit; } public int getRentSwitch() { return rentSwitch; } public void setRentSwitch(int rentSwitch) { this.rentSwitch = rentSwitch; } public int getSupportPayType() { return supportPayType; } public void setSupportPayType(int supportPayType) { this.supportPayType = supportPayType; } public int getIsFav() { return isFav; } public void setIsFav(int isFav) { this.isFav = isFav; } public int getState() { return state; } public void setState(int state) { this.state = state; } }DataFromNetwork.java
package com.hust.map; import java.util.ArrayList; import java.util.HashMap; public class DataFromNetWork { boolean success; HashMap> data; }
DataFromNetWork mDataFromNetWork=mGson.fromJson(mParksString, DataFromNetWork.class); ArrayListmParksList=mDataFromNetWork.data.get("list");
本次實例是將用戶的設置信息,以實體類為媒介,保存到內部存儲或者SD卡的文件裡。再次打開應用時,程序會自動調用文件中實體類,並對設置信息進行設置,使其恢復到用戶最終保存的狀
很多朋友在啟動應用或者玩游戲的時候都出現Google Play服務已停止運行,或者之前運行正常的應用突然不能使用了。這是為什麼?在這我們就來講解一下Goog
之前對系統自帶的土司的源碼做了簡要分析,見博客:點擊打開鏈接這一篇給一個小案例,自定義土司,模擬騰訊衛士的小火箭發射。如果想要迅速看懂代碼,建議先去看一下上篇介紹點擊打開
相信有很人做的項目估計都用的到這個。就是ListView的下拉刷新上拉加載還有就是列的橫向滾動;PS:橫向滾動帶表頭與固定列(相信蠻多人都有這樣的需求吧?就是在ListV