【问题标题】:How to parse JSON array into the android spinner from asp.net webservice which returns string as below [closed]如何从 asp.net webservice 将 JSON 数组解析为 android spinner,它返回如下字符串 [关闭]
【发布时间】:2013-06-20 05:44:16
【问题描述】:
[
{
    "value": "--NA--",
    "id": "251"
},
{
    "value": "Adilabad",
    "id": "1346"
},
{
    "value": "Yavatmal",
    "id": "1478"
}
]

如何将上面的 json 从 json webservice 解析成 android spinner。

我也经历了许多解决方案,但没有到达那里。 我试过了,但它不适合我

public class SpinnerDemo extends Activity {

//JSON node names
private static final String TAG_DATA = "data";
private static final String TAG_CREATED_AT = "created_at";
private static final String TAG_ID_DRINK = "id";
private static final String TAG_NAME = "name";
private static final String TAG_PRICE = "price";
private static final String TAG_UPDATED_AT = "updated_at";
private static final String MAP_API_URL = "http://domainname.com/webservice/WSHMS.asmx?op=GetCityList";
private BackGroundTask bgt;

Spinner drinkField;

ArrayList<Drink> drinkList = new ArrayList<Drink>();

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.spinner_main);
    buildDrinkDropDown();
}

private void buildDrinkDropDown() {

    List<NameValuePair> apiParams = new ArrayList<NameValuePair>(1);
    apiParams.add(new BasicNameValuePair("call", "drinkList"));

    bgt = new BackGroundTask(MAP_API_URL, "GET", apiParams);

    try {
        JSONObject drinkJSON = bgt.execute().get();
        // Getting Array of drinks
        JSONArray drinks = drinkJSON.getJSONArray(TAG_DATA);

        // looping through All drinks
        for (int i = 0; i < drinks.length(); i++) {

            JSONObject d = drinks.getJSONObject(i);

            // Storing each json item in variable

            String id = d.getString(TAG_ID_DRINK);
            String createdAt = d.getString(TAG_CREATED_AT);
            String updatedAt = d.getString(TAG_UPDATED_AT);
            String price = d.getString(TAG_PRICE);
            String name = d.getString(TAG_NAME);



            // add drink
            drinkList.add(new Drink( createdAt ,id, name, price,updatedAt ));
        }

我使用了这段代码,但没有得到它... 请帮我解决这个问题

【问题讨论】:

  • 尝试发布您的经历过许多解决方案的代码。那么可能会有人帮助你。你的问题太模糊了。
  • 我编辑了我的问题,请帮助我。
  • 你能澄清什么问题吗?您无法解析 json?或者在微调器中设置值有问题?你在 String id = d.getString(TAG_ID_DRINK);... 中获取值吗?
  • 我通过编辑这段代码使用了这段代码,但我想要一些可以帮助我的源代码

标签: android json spinner android-spinner arrays


【解决方案1】:

你可以参考下面的代码 对于json

[ 
{
  "name" : "Test",
  "id" : 512
}, {
  "name" : "Test2",
  "id" : 573
}, {
  "name" : "Test3",
  "id" : 585
}
]

像这样解析

    ArrayList<String> arrProducts = new ArrayList<String>();

    try {
        JSONArray valarray = new JSONArray(jsonstring);
        for (int i = 0; i < valarray.length(); i++) {

            String str = valarray.getJSONObject(i).getString("name");
            arrProducts.add(str);
        }
    } catch (JSONException e) {
        Log.e("JSON", "There was an error parsing the JSON", e);
    }

然后你可以像这样设置微调器

        ArrayAdapter<String> productAdapter = new ArrayAdapter<String>(
                            MyActivity.this,
                            android.R.layout.simple_spinner_item, arrProducts);

        productAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        productSpinner.setAdapter(productAdapter);

【讨论】:

    【解决方案2】:

    您好,请在此处找到有关其 asmx 服务问题的示例代码,并从那里获取 json 作为输出:这是代码,请相应地放置您的服务 url:https://skydrive.live.com/redir?resid=8FBD3A73D6D8BFC1!233&authkey=!AKVwa6BLk0nF5sU

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-25
      • 1970-01-01
      • 1970-01-01
      • 2019-12-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多