我JSONArray
返回两个值
Phone Array : [{"type":"H","value":"9845313133"},{"type":"H","value":"9987546132"}]
如何在单独的字符串中获取两个值,如
String A = "9845313133"
String B = "9987546132"
以下是我将要迭代的内容
JSONArray phoneArray = jsonObject.getJSONArray("phone");
当前代码:
JSONObject cit = phoneArray.getJSONObject(0);
String phoneNumbers = "";
for (int count=1; count <= phoneArray.length(); count++) {
if (phoneNumbers.length() == 0)
phoneNumbers += phoneArray.getJSONObject(count-1).getString("value");
else
phoneNumbers += ", " + phoneArray.getJSONObject(count-1).getString("value");
}
答案 0 :(得分:0)
尝试类似
的内容 String[] phoneNumbers = new String[phoneArray.length()];
for (int count=0; count <= phoneArray.length(); count++)
{
JSONObject cit = phoneArray.getJSONObject(count);
phoneNumbers[count] = cit.getString("value");
}
最后,您将拥有phoneNumbers数组中的所有电话号码。
答案 1 :(得分:0)
如果您已经将数据解析为以逗号分隔的phoneNumbers
变量,那么您只需split
即可获取电话号码。
String[] numbers = phoneNumbers.split(", ");
您可以将每个电话号码设为numbers[0]
,numbers[1]
,依此类推。
注意:在访问数据之前检查边界,如下所示,否则您将遇到ArrayIndexOutOfBoundsException
。
if(numbers.length > 0){
String A = numbers[0];
}
答案 2 :(得分:0)
1。使用ArrayList
存储多个String
值。
2。逐个解析"value"
并将其存储到ArrayList
以下是工作代码:
try {
// RESPONSE = [{"type":"H","value":"9845313133"},{"type":"H","value":"9987546132"}]
JSONArray phoneArray = RESPONSE;
ArrayList<String> list = new ArrayList<String>();
for (int count = 0; count < phoneArray.length(); count++)
{
JSONObject object = phoneArray.getJSONObject(count);
String phoneNumber = object.getString("value");
// Add phoneNumber to list
list.add(phoneNumber);
}
for (int i= 0; i < list.size(); i++)
{
Log.d("OUTPUT", "Value: " + list.get(i));
}
} catch (JSONException e) {
e.printStackTrace();
}
<强>输出:强>
D/OUTPUT: Value: 9845313133
D/OUTPUT: Value: 9987546132
答案 3 :(得分:0)
为从JSONArray检索的JSONObjects创建一个POJO类,即“phone array”。
以下是POJO类Example
的代码:
package com.example;
import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;
public class Example {
@SerializedName("type")
@Expose
private String type;
@SerializedName("value")
@Expose
private String value;
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
}
然后以下列方式使用Gson
获取POJO类中的值。
JSONArray phoneArray = jsonObject.getJSONArray("phone");
final ArrayList<Example> arrList = new ArrayList<>();
for(int i=0;i<phoneArray.length();i++){
Gson gson = new Gson();
arrList.add(gson.fromJson(phoneArray.getJSONObject(i).toString(), Example.class));
}
您可以使用geValue()
课程的Example
方法获取所有电话号码的值。