tôi cần phải chuyển đổi các lớp sau:Chuyển đổi Java đối tượng phức tạp để Json
package comS309.traxz.data;
import java.util.Collection;
import org.json.JSONException;
import org.json.JSONObject;
public class ExerciseSession {
public String DateCreated;
public String TotalTime;
public String CaloriesBurned;
public String AvgSpeed;
public String SessionName;
public String Distance;
public String SessionType;
public String UserId;
public Collection<LatLon> LatLons;
}
đâu LatLon được như sau:
public class LatLon {
public String LatLonId;
public String Latitude;
public String Longitude;
public String ExerciseSessionId;
public String LLAveSpeed;
public String Distance;
}
Vì vậy, các lớp ExerciseSession có một bộ sưu tập của các đối tượng LatLon. Bây giờ tôi cần phải chuyển đổi Class ExerciseSession thành một định dạng Json từ java và gửi nó đến máy chủ của tôi.
Tôi đang thực hiện việc này trên hệ điều hành Android, nếu có vấn đề.
giải pháp hiện tại của tôi là thế này:
JSONObject ExerciseSessionJSOBJ = new JSONObject();
ExerciseSessionJSOBJ.put("DateCreated", this.DateCreated);
ExerciseSessionJSOBJ.put("TotalTime", this.TotalTime);
ExerciseSessionJSOBJ.put("CaloriesBurned", this.CaloriesBurned);
ExerciseSessionJSOBJ.put("AvgSpeed", this.AvgSpeed);
ExerciseSessionJSOBJ.put("SessionName", this.SessionName);
ExerciseSessionJSOBJ.put("Distance", this.Distance);
ExerciseSessionJSOBJ.put("SessionType", this.SessionType);
ExerciseSessionJSOBJ.put("UserId", this.UserId);
//add the collection
for(LatLon l: LatLons)
{
ExerciseSessionJSOBJ.accumulate("LatLons", l);
}
Tôi không chắc chắn này là hợp lệ .. Tôi là một người mới làm quen với Json và cần sự giúp đỡ. Cảm ơn trước sự giúp đỡ!
Điều này thật khéo léo, cảm ơn bạn! – Aziz
Xin chào binnyb, m chuyển đổi đối tượng phức tạp thành JSON bằng câu trả lời bạn đã cung cấp. Nhưng tôi có một số ngoại lệ thời gian chạy như 'java.lang.StackOverflowError: kích thước ngăn xếp 8MB' và' android.os.TransactionTooLargeException' Bạn có thể giúp tôi –
@OnkarNene bạn đang truyền tải quá nhiều dữ liệu, bạn đặt cược tốt nhất là khám phá nguyên nhân gây ra lỗi này và cố gắng giảm thiểu sự xuất hiện của các khối dữ liệu lớn như vậy, hãy xem bài đăng này: http://stackoverflow.com/questions/11451393/what-to-do-on-transactiontoolargeexception – binnyb