{
"key1": "value1",
"key2": "value2",
"key3": "value3"
}
ฉันจะได้รับคีย์และมูลค่าของแต่ละรายการโดยไม่ทราบคีย์หรือมูลค่ามาก่อนได้อย่างไร
{
"key1": "value1",
"key2": "value2",
"key3": "value3"
}
ฉันจะได้รับคีย์และมูลค่าของแต่ละรายการโดยไม่ทราบคีย์หรือมูลค่ามาก่อนได้อย่างไร
คำตอบ:
ใช้ตัวkeys()
วนซ้ำเพื่อวนซ้ำคุณสมบัติทั้งหมดและเรียกget()
ใช้แต่ละคุณสมบัติ
Iterator<String> iter = json.keys();
while (iter.hasNext()) {
String key = iter.next();
try {
Object value = json.get(key);
} catch (JSONException e) {
// Something went wrong!
}
}
คำตอบสั้น ๆ ของ Franci:
for(Iterator<String> iter = json.keys();iter.hasNext();) {
String key = iter.next();
...
}
คุณจะต้องใช้Iterator
ปุ่มเพื่อวนซ้ำเพื่อรับค่า
นี่คือการใช้งาน Kotlin คุณจะรู้ว่าวิธีที่ฉันได้รับสตริงนั้นใช้optString()
ซึ่งคาดว่าจะเป็น String หรือค่า nullable
val keys = jsonObject.keys()
while (keys.hasNext()) {
val key = keys.next()
val value = targetJson.optString(key)
}
คุณ shold ใช้keys()
or names()
method keys()
จะให้ตัววนซ้ำที่มีชื่อคุณสมบัติ String ทั้งหมดในออบเจ็กต์ในขณะที่names()
จะให้อาร์เรย์ของชื่อคีย์สตริงทั้งหมด
คุณสามารถรับเอกสาร JSONObject ได้ที่นี่
http://developer.android.com/reference/org/json/JSONObject.html
ดูการอ้างอิง JSONObject:
http://www.json.org/javadoc/org/json/JSONObject.html
โดยไม่ต้องใช้วัตถุจริงๆดูเหมือนว่าการใช้ getNames () หรือ keys () ซึ่งส่งคืน Iterator เป็นวิธีที่จะไป
JSONObject
ใน Android getNames()
ไม่ได้ developer.android.com/reference/org/json/JSONObject.html