/ / Android में JSON डेटा पार्स करते समय त्रुटि हो रही है - android, json

JSON डेटा को एंड्रॉइड में पार्स करते समय त्रुटि प्राप्त करना - एंड्रॉइड, जेसन

मुझे यह त्रुटि मिल रही है

Error in parsing Dataorg.json.JSONException: Value ["AACHI"] at 0 of type org.json.JSONArray cannot be converted to JSONObject

Process: info.androidhive.materialdesign, PID: 18373
java.lang.NullPointerException: Attempt to invoke virtual method "java.lang.Object android.content.Context.getSystemService(java.lang.String)" on a null object reference

यह मेरा डेटा है कि मैं पार्स करने की कोशिश कर रहा हूं।`[[" अचीव "], [" अजेय कंपनी "], [" ऑलआउट "], [" अम्बिका "], [" एएमआईसीओ प्रोडक्ट्स "], [" एएमयूएल "], [" एंगंड प्रोडक्ट्स "], [] "ANNAPURNA"], ["ANOOS उत्पादों"], ["आर्ट लैबोरेटरीज"], ["ASWINI फार्मास्यूटिकल्स"], ["ATTK उत्पादों"], ["AVA], [" BAJAJ उत्पादों "], [" BAMBINO " ], ["BANJARAS उत्पादों"], ["BHAGAYALAKSHIMI उत्पादों"], ["BRITANNIA"], ["Cadbury"]]

यह मेरा कोड स्निपेट है जो जोंस डेटा को पार्स करता है।

 class DownloadJson extends AsyncTask {

Activity context;
ListView myListView;

private  ProgressDialog dialog = new ProgressDialog(getActivity());
public DownloadJson(Activity context, ListView myListView) {
this.myListView = myListView;
this.context = context;

}

public DownloadJson() {

}


@Override
protected void onPreExecute() {

this.dialog.setMessage("Please wait");
this.dialog.show();
}

@Override
protected void onCancelled() {
super.onCancelled();
}

@Override
protected Object doInBackground(Object[] params) {
String result = null;
InputStream isr = null;
String imageId = null;
String ip = "http://ganarajsshetti.tk/mobileapp/selectjson.php/";
try {

HttpClient httpClient = new DefaultHttpClient();
HttpGet httpGet = new HttpGet(ip);
HttpResponse httpResponse = httpClient.execute(httpGet);
HttpEntity httpEntity = httpResponse.getEntity();
isr = httpEntity.getContent();
} catch (Exception e) {
Log.e("log_tag", "Error in http Connection" + e.toString());

}
// converting response to string
try {
BufferedReader br = new BufferedReader(new InputStreamReader(isr));
StringBuilder sb = new StringBuilder();
String line = null;
while ((line = br.readLine()) != null) {
sb.append(line + "n");
}
isr.close();
result = sb.toString();

} catch (Exception e) {
Log.e("log_tag", "Error in Converting Data" + e.toString());
}

// parse JSON data

try {

JSONArray jsonArray = new JSONArray(result);
strListView = new String[jsonArray.length()];
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject json_data = jsonArray.getJSONObject(i);

strListView[i] = json_data.getString("Num_Rows");

System.out.println("--------------"+json_data.getString("Num_Rows"));

Log.e("ACK_tag", "DATA" + strListView[i]);
}

} catch (Exception e) {
Log.e("log_tag", "Error in parsing Data" + e.toString());
}

return null;

}

@Override
protected void onPostExecute(Object o) {
//objAdapter = new ArrayAdapter<String>(context,R.layout.vendorwithimage,R.id.venderdescrip,strListView);
if (dialog.isShowing()) {
dialog.dismiss();
}
callCustomAdaper(context);


}
}
@Override
public void onStop() {
super.onStop();
if (task.getStatus() == AsyncTask.Status.RUNNING)
task.cancel(true);
if (task.getStatus() == AsyncTask.Status.RUNNING)
task.cancel(true);

}

`

उत्तर:

जवाब के लिए 0 № 1

लाइनों को बदलकर देखें

JSONObject json_data = jsonArray.getJSONObject(i);
strListView[i] = json_data.getString("Num_Rows");

सेवा मेरे

JSONArray innerJsonArray = jsonArray.getJSONArray(i);
strListView[0] = json_data.get(0);

जवाब के लिए 2 № 2

सरणियों की इसकी json सरणी। यह एक 2D सरणी की तरह है।

JsonArray jsonarray= new JsonArray(json);
for (int i = 0; i < jsonArray.length(); i++) {
strListView[i] = jsonarray.getJsonArray(i);


}

लिंक स्रोत:https://www.json.com/json-array


उत्तर № 3 के लिए 1

JSONObject json_data = jsonArray.getJSONObject (i);

यहाँ "jsonArray" में सरणी ऑब्जेक्ट है json ऑब्जेक्ट नहीं। इसलिए आपको इसे JsonArray में बदलना होगा

  JSONArray jsonArrayElement = jsonArray.getJSONArray(0);

और यह भी न्यायसंगत है लेकिन पारंपरिक या उपयोगी नहीं है .. !!

Json के लिए अधिक जानकारी की जाँच करें यहाँ.


जवाब के लिए 0 № 4

इसे इस्तेमाल करे। अच्छा कर रहा है

String json = "[["AACHI"],["AJAY COMPANY"],["ALL OUT"],["AMBICA"],["AMICO PRODUCTS"],["AMUL"],["ANAND BHOG PRODUCTS"],["ANNAPURNA"],["ANOOS PRODUCTS"],["ARVIND LABORATORIES "],["ASWINI PHARMACEUTICALS"],["ATTK PRODUCTS"],["AVA"],["BAJAJ PRODUCTS "],["BAMBINO"],["BANJARAS PRODUCTS"],["BHAGAYALAKSHIMI PRODUCTS"],["BRITANNIA"],["cadbury"]]";
try {
JSONArray jsAr = new JSONArray(json);
String job="";
for(int i=0;i<jsAr.length();i++)
{
JSONArray js1 = jsAr.getJSONArray(i);
job += js1.getString(0);

}
Toast.makeText(this,job,Toast.LENGTH_LONG).show();

} catch (JSONException e) {
// TODO Auto-generated catch block

Toast.makeText(this,"Error",Toast.LENGTH_LONG).show();
e.printStackTrace();
}