在Code中有什么我不了解的Json

时间:2016-02-24 18:03:36

标签: android json

我正在尝试使用android中的json方法。 我阅读了json及其方法的文档,但是当我使用它们时,它们并没有按照我的预期去做。

public class getData_jason extends AsyncTask{

    String KholaseKQuery;
    String User;

public getData_jason(String link,String user) {
    KholaseKQuery = link;
    User = user;
}

@Override
protected String doInBackground(Object[] params) {

    try{

        URL mylink = new URL(KholaseKQuery);

        URLConnection connect = mylink.openConnection();

        BufferedReader read = new BufferedReader(new InputStreamReader(connect.getInputStream()));
        StringBuilder sB = new StringBuilder();
        String eline;
        while((eline = read.readLine())!= null)
        {
            sB.append(eline);
        }
        //MainActivity.jason_rs = sB.toString();
        MainActivity.result = sB.toString();
        MainActivity.is = true;
        JSONObject jObj;
        try{

            jObj = new JSONObject(MainActivity.result.replace("callback(","")).getJSONObject("response");
            JSONArray jsonArray = jObj.optJSONArray("Username");

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

                JSONObject jsonObject = jsonArray.getJSONObject(i);
                if (jsonObject.getBoolean("ali")){
                    MainActivity.jason_rs = jsonObject.optString("Name");
                    //MainActivity.jason_rs = jsonObject.getString("Name");
                }
            }
        }catch (Exception e){
        }
    }catch (Exception e){
        /*Any Exception Here*/
    }
    return "";
}

}

当从数据库读取的过程结束时,结果字符串是:

{"Username":["Name":"ali","Name":"hasan"]},{"Password":["aliali","hasanhasan"]}

所以当我想从jsonObject获取ali名称时,jason_rs的值为null。 请告诉我,我还不知道使用json或者我做错了什么。

1 个答案:

答案 0 :(得分:3)

你的&#34; json&#34;是无效的。您不能在哈希中多次使用相同的密钥,另一方面,您也不能在数组中拥有密钥(当然不是字符串)。您可以在http://jsonlint.com

上对其进行验证