我想帮助获取android中对象返回的键和值。
这是json对象,我想检查结果是否成功然后继续做其他事情。
{
"product_name": "iPhone 8",
"result": " Success",
"error": null,
"description": "iphone 8, the best phone",
"agent": null,
"client": "0700000000",
"amount": "800$",
"clientId": null,
"stage": null,
"message": " Success: YOUR AIRTIME HAS BEEN SENT TO:0727110300 Successfully.",
"datetime": "2017-10-14 12:57:42"
}
这个我的代码在android上使用rx java
@Override
public void onNext(Product product) {
Gson gson = new Gson();
String productResponse = gson.toJson(product);
Toast.makeText(getContext(), productResponse, Toast.LENGTH_SHORT).show();
if (productResponse.getString("result").equals("success")) {
Toast.makeText(getContext(), "success, ...", Toast.LENGTH_SHORT).show();
}
else
{
Toast.makeText(getContext(), "error, ...", Toast.LENGTH_SHORT).show();
}
答案 0 :(得分:1)
试试这个:
JSONObject js = new JSONObject(productResponse);
if(js.getString("result").toString().equals("Success")) {
//Do something in case of success
}else{
//Do something in case of error
}
答案 1 :(得分:1)
创建一个POJO以将json映射到java类并使用JSon解析它。以下是pojo。
public class Product {
@SerializedName("product_name")
@Expose
private String productName;
@SerializedName("result")
@Expose
private String result;
@SerializedName("error")
@Expose
private Object error;
@SerializedName("description")
@Expose
private String description;
@SerializedName("agent")
@Expose
private Object agent;
@SerializedName("client")
@Expose
private String client;
@SerializedName("amount")
@Expose
private String amount;
@SerializedName("clientId")
@Expose
private Object clientId;
@SerializedName("stage")
@Expose
private Object stage;
@SerializedName("message")
@Expose
private String message;
@SerializedName("datetime")
@Expose
private String datetime;
public String getProductName() {
return productName;
}
public void setProductName(String productName) {
this.productName = productName;
}
public String getResult() {
return result;
}
public void setResult(String result) {
this.result = result;
}
public Object getError() {
return error;
}
public void setError(Object error) {
this.error = error;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public Object getAgent() {
return agent;
}
public void setAgent(Object agent) {
this.agent = agent;
}
public String getClient() {
return client;
}
public void setClient(String client) {
this.client = client;
}
public String getAmount() {
return amount;
}
public void setAmount(String amount) {
this.amount = amount;
}
public Object getClientId() {
return clientId;
}
public void setClientId(Object clientId) {
this.clientId = clientId;
}
public Object getStage() {
return stage;
}
public void setStage(Object stage) {
this.stage = stage;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public String getDatetime() {
return datetime;
}
public void setDatetime(String datetime) {
this.datetime = datetime;
}
}
现在就这样使用它。
Gson gson = new Gson();
Product productResponse = gson.toJson(product, Product.class);
if (productResponse.getResult().equals("success")) {
Toast.makeText(getContext(), "success, ...", Toast.LENGTH_SHORT).show();
}
else
{
Toast.makeText(getContext(), "error, ...", Toast.LENGTH_SHORT).show();
}
答案 2 :(得分:1)
1.使用
JSONObject jsonObject = new JSONObject(productResponse);
来解析productResponse
2.使用
equalsIgnoreCase
来判断String
在您的代码中尝试此操作。
Gson gson = new Gson();
String productResponse = gson.toJson(product);
Toast.makeText(getContext(), productResponse, Toast.LENGTH_SHORT).show();
try {
JSONObject jsonObject = new JSONObject(productResponse);
if (jsonObject.getString("result").equalsIgnoreCase("success")) {
Toast.makeText(getContext(), "success, ...", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(getContext(), "error, ...", Toast.LENGTH_SHORT).show();
}
} catch (JSONException e) {
e.printStackTrace();
}