没有数组名称的json数据

时间:2016-08-31 08:54:09

标签: android json

这是我从网址

检索的数组
  

[{ “ash_id”: “1”, “asg_code”: “1226”, “ash_name”: “你好”, “ash_cell”: “123”, “ash_nic”: “123”, “ash_long”:” 34.015" , “ash_lat”: “71.5805”, “zm_id”:空, “CREATED_BY”: “0”, “CREATED_DATE”:“0000-00-00   00:00:00“,”last_updated“:”2016-08-29 07:52:35“}]

我有没有数组名称的数组,如果有jason数组的名称,我可以读取数据,但我不能用这种类型的数组做到这一点。

我的代码为json的任何建议,数组名称为

String json = serviceClient.makeServiceCall(URL_ITEMS, ServiceHandler.GET);
            // print the json response in the log
            Log.d("Get match fixture resps", "> " + json);
            if (json != null) {
                try {
                    Log.d("try", "in the try");
                    JSONObject jsonObj = new JSONObject(json);
                    Log.d("jsonObject", "new json Object");
                    // Getting JSON Array node
                    matchFixture = jsonObj.getJSONArray(TAG_FIXTURE);
                    Log.d("json aray", "user point array");
                    int len = matchFixture.length();
                    Log.d("len", "get array length");
                    for (int i = 0; i < matchFixture.length(); i++) {
                        JSONObject c = matchFixture.getJSONObject(i);
                        Double matchId = Double.parseDouble(c.getString(TAG_MATCHID));
                        Log.d("matchId", String.valueOf(matchId));
                        Double teamA = Double.valueOf(c.getString(TAG_TEAMA));
                        Log.d("teamA", String.valueOf(teamA));
                        String teamB = c.getString(TAG_TEAMB);
                        Log.d("teamB", teamB);`

4 个答案:

答案 0 :(得分:0)

直接将 jsonarray 字符串传递给JSONArray对象构造函数。

String json = [{"ash_id":"1","asg_code":"1226","ash_name":"hello","ash_cell":"123","ash_nic":"123","ash_long":"34.015","ash_lat":"71.5805","zm_id":null,"created_by":"0","created_date":"0000-00-00 00:00:00","last_updated":"2016-08-29 07:52:35"}];

JSONArray array = new JSONArray(json);

答案 1 :(得分:0)

List<Double> listMatch = new ArrayList<Double>();
List<Double> listA = new ArrayList<Double>();
List<String> listB = new ArrayList<String>();

创建三个arrayList并在该列表中添加数据

if(json!=null)

    {
        try {
            Log.d("try", "in the try");
            JSONArray jsonArray = new JSONArray(json);

            for (int i = 0; i < jsonArray.length(); i++) {
                JSONObject c = jsonArray.getJSONObject(i);

                listMatch.add(Double.parseDouble(c.getString(TAG_MATCHID)));
                Log.d("matchId", String.valueOf(matchId));
                listA.add(Double.valueOf(c.getString(TAG_TEAMA));
                Log.d("teamA", String.valueOf(teamA));
                listB.add(c.getString(TAG_TEAMB);
                Log.d("teamB", teamB);
            }
        } catch (JSONException e) {
            e.printStackTrace();
        }
    }

答案 2 :(得分:0)

如果json是动态的,您可以直接将JSON响应从URL传递给json。使用这样的东西:

JSONArray jsonarray = new JSONArray(jsonStr);
for (int i = 0; i < jsonarray.length(); i++) {
    JSONObject jsonobject = jsonarray.getJSONObject(i);
    String id = jsonobject.getString("ash_id");
    String code = jsonobject.getString("ash_code");
    String name = jsonobject.getString("ash_name");
    String cell = jsonobject.getString("ash_cell");
    String nic = jsonobject.getString("ash_nic");
    String lng = jsonobject.getString("ash_long");
    String lat = jsonobject.getString("ash_lat");
    String zm_id = jsonobject.getString("zm_id");
    String created_by = jsonobject.getString("created_by");
    String created_date = jsonobject.getString("created_date");
    String updated_date = jsonobject.getString("last_updated");
}

只要节点名称保持不变,这将更新您的数据。

这就是全部:)

答案 3 :(得分:0)

此代码对我有用:

public class MainActivity extends AppCompatActivity {
    private TextView textView;
    private RequestQueue queue;

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

    textView = findViewById(R.id.text_view_result);
    Button buttonParse = findViewById(R.id.button_parse);

    queue = Volley.newRequestQueue(this);

    buttonParse.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            jsonParse();
        }
    });
}


private void jsonParse() {

    String url = "http://10.216.70.19:8080/restServices/webapi/services/getAGVStatusList"; //This is my Json url
    StringRequest request = new StringRequest(Request.Method.GET, url, new Response.Listener<String>() {
        @Override
        public void onResponse(String response) {
            //weatherData.setText("Response is :- ");
            parseData(response);
        }
    }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
            textView.setText("Data Not Received");

        }
    });

    queue.add(request);
    super.onStart();
}

private void parseData(String response) {
    try {
        // Create JSOn Object
        JSONArray jsonArray = new JSONArray(response);
        for (int i = 0; i <jsonArray.length() ; i++) {
            JSONObject jsonObject = jsonArray.getJSONObject(i);
            textView.setText(jsonObject.getString("batteryLevel")); //get the desired information from the Json object

        }
    } catch (JSONException e) {
        e.printStackTrace();
    }
}

}