:
http://www.jsonschema2pojo.org/
@Override
protected void onPostExecute(string output) {
super.onPostExecute(output);
try {
JSONObject data = new JSONObject(output);
String test = data.getJSONObject("main_Points").getString("name");
System.out.print(test);
} catch(Exception ex) {
ex.printStackTrace();
}
}
そして、ここでは私のJSONオブジェクトの
-----------------------------------com.example.Example.java-----------------------------------
package com.example;
import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;
public class Example {
@SerializedName("main_Points")
@Expose
private MainPoints mainPoints;
@SerializedName("nearestPoints")
@Expose
private NearestPoints nearestPoints;
@SerializedName("polylines")
@Expose
private Polylines polylines;
public MainPoints getMainPoints() {
return mainPoints;
}
public void setMainPoints(MainPoints mainPoints) {
this.mainPoints = mainPoints;
}
public NearestPoints getNearestPoints() {
return nearestPoints;
}
public void setNearestPoints(NearestPoints nearestPoints) {
this.nearestPoints = nearestPoints;
}
public Polylines getPolylines() {
return polylines;
}
public void setPolylines(Polylines polylines) {
this.polylines = polylines;
}
}
----------------------------------- com.example.Final.java --- --- -----------------------------
package com.example;
import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;
public class Final {
@SerializedName("lat")
@Expose
private Double lat;
@SerializedName("lng")
@Expose
private Double lng;
@SerializedName("name")
@Expose
private String name;
public Double getLat() {
return lat;
}
public void setLat(Double lat) {
this.lat = lat;
}
public Double getLng() {
return lng;
}
public void setLng(Double lng) {
this.lng = lng;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
-------------- --------------------- com.example.Final_.java ---------------------- -------------
package com.example;
import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;
public class Final_ {
@SerializedName("lat")
@Expose
private Double lat;
@SerializedName("lng")
@Expose
private Double lng;
@SerializedName("name")
@Expose
private String name;
public Double getLat() {
return lat;
}
public void setLat(Double lat) {
this.lat = lat;
}
public Double getLng() {
return lng;
}
public void setLng(Double lng) {
this.lng = lng;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
------------------------------ ----- com.example.MainPoints.java -----------------------------------
package com.example;
import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;
public class MainPoints {
@SerializedName("final")
@Expose
private Final _final;
@SerializedName("start")
@Expose
private Start start;
public Final getFinal() {
return _final;
}
public void setFinal(Final _final) {
this._final = _final;
}
public Start getStart() {
return start;
}
public void setStart(Start start) {
this.start = start;
}
}
----------------------------------- com.example.NearestPoints.java ---- -------------------------------
package com.example;
import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;
public class NearestPoints {
@SerializedName("final")
@Expose
private Final_ _final;
@SerializedName("start")
@Expose
private Start_ start;
public Final_ getFinal() {
return _final;
}
public void setFinal(Final_ _final) {
this._final = _final;
}
public Start_ getStart() {
return start;
}
public void setStart(Start_ start) {
this.start = start;
}
}
----------------------------------- com.example.Polylines.java- ----------------------------------
package com.example;
import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;
public class Polylines {
@SerializedName("final")
@Expose
private String _final;
@SerializedName("middle")
@Expose
private String middle;
@SerializedName("start")
@Expose
private String start;
public String getFinal() {
return _final;
}
public void setFinal(String _final) {
this._final = _final;
}
public String getMiddle() {
return middle;
}
public void setMiddle(String middle) {
this.middle = middle;
}
public String getStart() {
return start;
}
public void setStart(String start) {
this.start = start;
}
}
--------- -------------------------- com.example.Start.java ----------------- ------------------
package com.example;
import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;
public class Start {
@SerializedName("lat")
@Expose
private Double lat;
@SerializedName("lng")
@Expose
private Double lng;
@SerializedName("name")
@Expose
private String name;
public Double getLat() {
return lat;
}
public void setLat(Double lat) {
this.lat = lat;
}
public Double getLng() {
return lng;
}
public void setLng(Double lng) {
this.lng = lng;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
------------------------- ---------- com.example.Start_.java --------------------------------- -
package com.example;
import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;
public class Start_ {
@SerializedName("lat")
@Expose
private Double lat;
@SerializedName("lng")
@Expose
private Double lng;
@SerializedName("name")
@Expose
private String name;
public Double getLat() {
return lat;
}
public void setLat(Double lat) {
this.lat = lat;
}
public Double getLng() {
return lng;
}
public void setLng(Double lng) {
this.lng = lng;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
そして
@Override
protected void onPostExecute(string output) {
super.onPostExecute(output);
try {
JSONObject data = new JSONObject(output);
Gson g = new Gson();
Example example = g.fromJson(data.toString(), Example.class);
} catch(Exception ex) {
ex.printStackTrace();
}
}
あなたは例のオブジェクトのすべてを取得します。
私はあなたの問題に役立つことを願っています!
ポリラインオブジェクトでパーサが "\\"で失敗する可能性があります。文字列をエスケープしようとするか、またはパーサーが失敗するような文字の組み合わせをすべて置き換えてください。 –
最も良い方法は、サーバー側から\をエスケープしてクライアント側で正しく読み取れるようにすることです。 –
ポリラインオブジェクトなしでJSONを解析しようとしましたが、成功しました。私もoutput.replace( "//"、 "////")を試しましたが、成功はありません – GhoSTBG