如何从asp.net webservice将JSON数组解析到android微调器中,该微调器返回如下字符串
如何从json webservice将上述json解析为android spinner 我也经历了许多解决方案,但没有达到目的。 我试过了,但对我不起作用如何从asp.net webservice将JSON数组解析到android微调器中,该微调器返回如下字符串,android,json,spinner,android-spinner,arrays,Android,Json,Spinner,Android Spinner,Arrays,如何从json webservice将上述json解析为android spinner 我也经历了许多解决方案,但没有达到目的。 我试过了,但对我不起作用 [ { "value": "--NA--", "id": "251" }, { "value": "Adilabad", "id": "1346" }, { "value": "Yavatmal", "id": "1478" } ] 公共类SpinnerDemo扩展活动{ //JSON节点名称
[
{
"value": "--NA--",
"id": "251"
},
{
"value": "Adilabad",
"id": "1346"
},
{
"value": "Yavatmal",
"id": "1478"
}
]
公共类SpinnerDemo扩展活动{
//JSON节点名称
私有静态最终字符串标记_DATA=“DATA”;
私有静态最终字符串标记_CREATED_AT=“CREATED_AT”;
私有静态最终字符串标记\u ID\u DRINK=“ID”;
私有静态最终字符串标记_NAME=“NAME”;
私有静态最终字符串标记_PRICE=“PRICE”;
私有静态最终字符串标记\u UPDATED\u AT=“UPDATED\u AT”;
私有静态最终字符串映射\u API\u URL=”http://domainname.com/webservice/WSHMS.asmx?op=GetCityList";
私人背景任务;
斯宾纳·德林菲尔德;
ArrayList drinkList=新的ArrayList();
/**在首次创建活动时调用*/
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.spinner_main);
buildDrinkDropDown();
}
私有void buildDrinkDropDown(){
List apiParams=newarraylist(1);
添加(新的BasicNameValuePair(“调用”、“饮用列表”);
bgt=新的背景任务(映射API URL,“获取”,apiParams);
试一试{
JSONObject drinkJSON=bgt.execute().get();
//得到一大堆饮料
JSONArray=drinkJSON.getJSONArray(TAG_数据);
//在所有饮料中循环
对于(int i=0;i
我使用了这个代码,但没有得到它。。。
请在这方面帮助我您可以参考下面的代码
对于json
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 ));
}
像这样解析
[
{
"name" : "Test",
"id" : 512
}, {
"name" : "Test2",
"id" : 573
}, {
"name" : "Test3",
"id" : 585
}
]
ArrayList arrProducts=new ArrayList();
试一试{
JSONArray valarray=新的JSONArray(jsonstring);
对于(int i=0;i
然后你可以像这样设置微调器
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 productAdapter=新的ArrayAdapter(
我的活动,这个,
android.R.layout.simple\u微调器\u项目、产品);
productAdapter.setDropDownViewResource(android.R.layout.simple\u微调器\u下拉菜单\u项);
productSpinner.setAdapter(productAdapter);
您好,请在此处找到问题的示例代码及其asmx服务,并从中获取json作为输出:这是代码,请相应地放置您的服务URL:尝试发布您的已浏览的许多解决方案代码。然后可能会有人帮助您。您的问题太模糊了。我编辑了我的问题,请帮助我。您可以吗请澄清问题是什么?你无法解析json?或者在spinner中设置值有问题?你是否在String id=d.getString(TAG_id_DRINK);…中获取值?我通过编辑此代码使用了此代码,但我需要一些可以帮助我的源代码
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);