如何从JSON数组中获取两个值作为字符串

时间:2017-05-24 06:35:54

标签: android

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");
}

4 个答案:

答案 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方法获取所有电话号码的值。