如何在Android中调用JSON对象

时间:2013-07-22 14:20:38

标签: android json

我是android开发的新手。我有以下Android代码来调用json

  try {

        JSONObject jsonObject = new JSONObject(result);
        //JSONObject object = jsonObject.getJSONObject("CUSTOMER_ID");
        JSONArray jArray = new JSONArray(CUSTOMER_ID);
        returnUsername1 = jArray.getInt("CUSTOMER_ID");
        Toast.makeText(getApplicationContext(), ""+returnUsername1,Toast.LENGTH_LONG).show();
        for (int i = 0; i < jArray.length(); i++) {
 }

我的JSON格式类似于[[{"0":"1","CUSTOMER_ID":"1"}]]

我引用了一些json格式它应该[{"0":"1","sno":"1"}]我能理解这一点。但是我的不同之处。

如何使用上述代码调用customer_id。任何人都可以建议解决方案。

5 个答案:

答案 0 :(得分:1)

你拥有的是Json数组

JSONArray jsonarray = new JSONArray(result); // result is a Array

[表示json数组节点

{表示json对象节点

你的Json。你需要两次Json数组吗?

  [ // array
    [ //array
        { // object
            "0": "1",  
            "CUSTOMER_ID": "1"
        }
    ]
   ]

解析

JSONArray jsonArray = new JSONArray(result);
JSONArray ja= (JSONArray) jsonArray.get(0);
JSONObject jb = (JSONObject) ja.get(0);
String firstvalue = jb.getString("0");
String secondvalue = jb.getString("CUSTOMER_ID");
Log.i("first value is",firstvalue);
Log.i("second value is",secondvalue);

logcat的

 07-22 14:37:02.990: I/first value is(6041): 1
 07-22 14:37:03.048: I/second value is(6041): 1

答案 1 :(得分:0)

通常,从JSONArray获取JSONObject:

JSONObject jsonObject = jsonArray.getJSONObject(0); //0 -> first object

然后

int userID = jsonObject.getInt("CUSTOMER_ID");

答案 2 :(得分:0)

在这种情况下,

CUSTOMER_ID不被视为JSONObject。如果jsonObject是您认为的那样,那么您应该能够使用jsonObject.getString(“CUSTOMER_ID”)

来访问它

答案 3 :(得分:0)

试试这个

JSONObject jsonObject = new JSONObject(result);
JSONArray jArray =json.getJSONArray("enterjsonarraynamehere");

for (int i=0; i < jArray.length(); i++)
{
    try {
        JSONObject oneObject = jArray.getJSONObject(i);
        // Pulling items from the array
        String cust= oneObject.getString("CUSTOMER_ID");
    } catch (JSONException e) {
        // Oops something went wrong
    }
}

我假设你的json是这样的

<somecode>
    {
        "enterjsonarraynamehere": [
            {  "0":"1",
               "CUSTOMER_ID":"1"
            },
            {   "0":"2",
               "CUSTOMER_ID":"2"
            } 
        ],
        "count": 2
    }
<somecode>

答案 4 :(得分:0)

如果您对 JSON 格式有任何问题,请先通过此网站验证 http://jsonlint.com/

然后解析

JSONObject jsonObject = new JSONObject(result);
// since your value for CUSTOMER_ID in your json text is string then you should get it as 
// string and then convert to an int
returnUsername1 = Integer.parseInt(jsonObject.getString("CUSTOMER_ID"));