可以說我有如何從json中獲得一個子域?
{
"name": "Json",
"detail": {
"first_name": "Json",
"last_name": "Scott",
"age": "23"
},
"status": "success"
}
我想要的狀態,以獲得名字「類JSON」,如果它是「成功」,如果是「終端」或「跑步」我不希望得到的名字。這是如何實現的?
可以說我有如何從json中獲得一個子域?
{
"name": "Json",
"detail": {
"first_name": "Json",
"last_name": "Scott",
"age": "23"
},
"status": "success"
}
我想要的狀態,以獲得名字「類JSON」,如果它是「成功」,如果是「終端」或「跑步」我不希望得到的名字。這是如何實現的?
將您的JSON到JSONObject的,那麼你可以得到它的名字每個值:
JSONObject obj = new JSONObject(yourJsonAsString);
String result = yourJsonObject.getString("name");
你可以先拿到狀態對象以相同的方式,並檢查它的結果,然後獲取/唐」 t相應地得到名稱。
一個做到這一點的方法:
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
public class JsonParser1 {
static String js1 = "{\n"
+ " \"name\": \"Json\",\n"
+ " \"detail\": {\n"
+ " \"first_name\": \"Json\",\n"
+ " \"last_name\": \"Scott\",\n"
+ " \"age\": \"23\"\n"
+ " },\n"
+ " \"status\": \"success\"\n"
+ "}";
public JsonParser1() {
parserJSON();
}
public void parserJSON() {
JSONParser parser = new JSONParser();
try {
Object obj1 = parser.parse(js1);
System.out.println("User 1: " + obj1.toString());
System.out.println();
JSONObject jobj1 = (JSONObject) obj1;
String name = jobj1.get("name").toString();
String status = jobj1.get("status").toString();
if (name.equals("Json")) {
System.out.println("Name: " + name + "\t" + "Status: " + status);
}
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
new JsonParser1();
}
}
OUTPUT:
User 1: {"name":"Json","detail":{"last_name":"Scott","first_name":"Json","age":"23"},"status":"success"}
Name: Json Status: success
了不起的東西,謝謝。這有助於很多,並清除了我遇到的一個基本概念 – flux
嘗試這個
創建的類文件獲取對象從JSON。 (如下所示)
class ResponseObject implements Serializable {
String name;
Detail detail;
String status;
public ResponseObject() {
this("", new Detail("", "", ""), "");
}
public ResponseObject(String name, Detail detail, String status) {
this.name = name;
this.detail = detail;
this.status = status;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Detail getDetail() {
return detail;
}
public void setDetail(Detail detail) {
this.detail = detail;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
}
class Detail implements Serializable {
String first_name;
String last_name;
String age;
public Detail() {
this("", "", "");
}
public Detail(String first_name, String last_name, String age) {
this.first_name = first_name;
this.last_name = last_name;
this.age = age;
}
public String getFirst_name() {
return first_name;
}
public void setFirst_name(String first_name) {
this.first_name = first_name;
}
public String getLast_name() {
return last_name;
}
public void setLast_name(String last_name) {
this.last_name = last_name;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
}
解析JSON字符串並獲取使用Google GSON的對象如下所示。
String strResponse = "{ \"name\": \"Json\", \"detail\": { \"first_name\": \"Json\", \"last_name\": \"Scott\", \"age\": \"23\" }, \"status\": \"success\" }";
try {
ResponseObject responseObject = new Gson().fromJson(strResponse, ResponseObject.class);
if (responseObject.getStatus().equalsIgnoreCase("success")) {
System.out.println(responseObject.getName());
System.out.println(responseObject.getDetail().getFirst_name());
} else {
//status terminal
}
} catch (JsonSyntaxException e) {
e.printStackTrace();
}
? – Abhishek
from「name」字段,你能告訴我如何從first_name中獲得它嗎?我認爲它應該是一個非常相似的方式 – flux
我給我的答案檢查它,我認爲它有幫助。 – Abhishek