将简单的json解析为微调器条目

时间:2017-06-13 11:28:45

标签: java android json

我一直在尝试进入android / java编程,我一直在理解如何正确获取此json的值并将其解析为在微调器中选择的选项。

我的json就像:

["Result1","Result2","Result3"]

我目前的代码如下:

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        RequestQueue queue = Volley.newRequestQueue(this);
        String url = "https://example.com/jsonfile.json";

        StringRequest stringRequest = new StringRequest(Request.Method.GET, url,new Response.Listener<String>() {
        @Override
        public void onResponse(String response) {
            //Do something with response
        }
    }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
            System.out.println(error.toString());
        }
    });

    queue.add(stringRequest);
}

将这些值(Result1,Result2,Result3等)放入spinner.entries的最简单方法是什么?

提前致谢

5 个答案:

答案 0 :(得分:1)

据我所知,您以错误的方式发送json数据。 如果你想发送一个数组,你必须放置一个jsonArray对象作为响应名称来访问该jsonArray。

示例

&#34;汽车&#34;:[&#34;福特&#34;,&#34;宝马&#34;,&#34;菲亚特&#34; ]

在这里,我们将在JsonArray中发送名称为&#34; cars&#34;的3个车名。

访问这些条目: -

for (i in myObj.cars) {

    carsArray += myObj.cars[i];
}

答案 1 :(得分:1)

试试这个:

myString.replace("\"]","");
myString.replace("[\"","");

List<String> myList = new ArrayList<String>(Arrays.asList(s.split("\",\"")));


ArrayAdapter<String> spinnerArrayAdapter = new ArrayAdapter<String>(varRoot, android.R.layout.simple_spinner_item, myList);

spinnerArrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); // The drop down vieww

mySpinner.setAdapter(spinnerArrayAdapter);

答案 2 :(得分:0)

您需要进行同步调用才能获取json数据。请参阅以下教程 Android assync task example 并使用Android json parsing example

解析json数据

答案 3 :(得分:0)

 @Override
    public void onResponse(String response) {
        //Do something with response
        JSONArray jsonArray = new JSONArray(response);
        for (int i = 0; i < array.length(); i++) {
            array.put(jsonArray.getString(i)); 
        }
    }

在您的活动的OnCreate()元数据

上添加此内容
ArrayAdapter<CharSequence> adapter = 
ArrayAdapter.createFromResource(this, array, 
android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);

并把它

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

答案 4 :(得分:0)

你好试试这个可能会有帮助吗

public class MainActivity extends AppCompatActivity  {
    Button btnCall;
    final List<String> reviewList = new ArrayList<>();
    List<String>resultList=new ArrayList<>();
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        btnCall=(Button)findViewById(R.id.btnCall);
        final String jArrStr="[\"Result1\",\"Result2\",\"Result3\"]";

        btnCall.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                try {
                    JSONArray jArry=new JSONArray(jArrStr);
                    for (int i = 0; i < jArry.length(); i++) {
                        String strArr=jArry.getString(0);
                        resultList.add(jArry.getString(i));
                    }
                } catch (JSONException e) {
                    e.printStackTrace();
                }
            }
        });

    }



}