2016-11-14 3 views
1

Я хочу отправить список JSON из одной активности в другую. Я делаю таким образомНевозможно получить данные JSON в Android

Для отправки

List<JSONObject> jsonList = new ArrayList<JSONObject>(); 
Intent i = new Intent(getApplicationContext(), AdapterContent.class); 
Bundle b = new Bundle(); 
b.putString("Array",jsonList.toString()); 
i.putExtras(b); 

Для получения

Bundle b = getIntent().getExtras(); 
String Array=b.getString("Array"); 
Log.i("TAG" ,Array); 
JSONObject jsonobj = new JSONObject(Array); 
Log.i("Name" , String.valueOf(jsonobj.getString("Name"))); 

JSON объект

[ 
{"Name":"Area1"}, 
{"Name":"Area 2"} 
] 

Но это побудило

Вт/System.err: в com.example.data.mydata.onCreate

Он печатает Array но не Name от JsonObj Что-то здесь не так?

+0

использовать jsonobj.get («Name»), может быть, это поможет –

+2

Что вы jsonList? Json Array или java Array? –

+0

@MdAbdulGafur является правильным. Какой формат вы получаете в своем 'jsonObj' Покажите нам формат через [pastie] (http://pastie.org) – Praveenkumar

ответ

2
// make a json array 
JSONArray jsonArr = new JSONArray(Array); 

// empty containers for later use 
JSONObject jobj; 
String name=null; 

// traverse all json object according to index of jsonarray 
for(int i=0;i<jsonArr.length();i++){ 

// fetch jasonObject according to index 
    jobj=jsonArr.getJSONObject(i); 

// get the name string from object and use it accordingly 
    name=jobj.optString("Name"); 
} 
0

вы должны отбросить строку JSON в массив JSON не как объект JSon

String Array = getIntent().getExtras().getString("Array"); 
Log.i("TAG" ,Array); 
JSONArray jsonArr = new JSONArray(Array); 
JSONObject jsonObj; 
for(int i=0;i<jsonArr.length();i++){ 
    jsonObj = jsonArr.getJSONObject(i); 
    Log.i("Name" , String.valueOf(jsonObj.getString("Name"))); 
} 

Примечание: рекомендуется для сериализации или преобразовать данные в parcelable при переходе между деятельностью

0

Почему вам необходимо отправить JsonList. Лучше создать класс модели для вашего списка. и сделать его возможным. и отправить его на другой вид деятельности

intent.putExtra(Key,yourModelClass); 
Смежные вопросы