بروز خطا
[message]
اشتراک در سوال
رای ها
[dataList]
آرایه داخل فایل json
سلام دوستان، اگر یک فایل json به این صورت داشته باشیم:
[
{
"name" : "alborz",
"address" : "sohravadi",
"phone" : "02188534757",
"site" : "http://www.alborzrest.com",
"mobile" : "09124126416"
},
{
"name" : "nayebsaee",
"address" : "valiasr",
"phone" : "02188713474",
"site" : "http://www.nayebsaei.ir",
"mobile" : "09124338103"
},
{
"name" : "orkideh",
"address" : "arjantin",
"phone" : "02188885300",
"site" : "http://www.orkiderestaurant.com/arjantin.php",
"mobile" : "09194822960"
}
]
با کد زیر می توان عناصر آن را خواند و ذخیره کرد:
public class ShowNames extends ListActivity
{
ArrayList<String> names = new ArrayList<String>();
ArrayList<String> addresses = new ArrayList<String>();
ArrayList<String> phones = new ArrayList<String>();
ArrayList<String> mobiles = new ArrayList<String>();
String result = "";
int c;
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
try {
AssetManager assetManager = getResources().getAssets();
InputStream is = assetManager.open("details.json");
while ((c = is.read()) != -1) {
result += (char) c;
}
is.close();
JSONArray jsonArray = new JSONArray(result);
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject jsonObject = jsonArray.getJSONObject(i);
names.add(jsonObject.getString("name"));
addresses.add(jsonObject.getString("address"));
phones.add(jsonObject.getString("phone"));
mobiles.add(jsonObject.getString("mobile"));
}
}
catch (Exception e)
{
Toast.makeText(getApplicationContext(),"ERROR:" + e.getMessage(),Toast.LENGTH_LONG).show();
}
حال اگر در فایل یک منو به صورت زیر اضافه شود، برای دسترسی به آن باید چه کدی نوشت؟
[
{
"name" : "alborz",
"address" : "sohravadi",
"phone" : "02188534757",
"site" : "http://www.alborzrest.com",
"mobile" : "09124126416",
"menu": [{"name": "chicken+rice" , "price": "28000"} , {"name": "fababin+rice" , "price": "60500"} ,
{"name": "roastChicken" , "price": "48400"}],
},
{
"name" : "nayebsaee",
"address" : "valiasr",
"phone" : "02188713474",
"site" : "http://www.nayebsaei.ir",
"mobile" : "09124338103",
"menu": [{"name": "filekebab" , "price": "59000"} , {"name": "tahchin" , "price": "29000"} ,
{"name": "koobidehKebab" , "price": "31000"}]
},
{
"name" : "orkideh",
"address" : "arjantin",
"phone" : "02188885300",
"site" : "http://www.orkiderestaurant.com/arjantin.php",
"mobile" : "09194822960",
"menu": [{"name": "shandiz" , "price": "48000"} , {"name": "fababin+rice" , "price": "35000"} ,
{"name": "roastChicken" , "price": "16000"}]
}
]
برای این سوال 2 پاسخ وجود دارد.
پاسخ به سوال
احمد
8 سال پیش
0
0
کاش کدتون را بهتر می گذاشتید. شاید این کمکتون کنه باید تست کنید
public class ShowNames extends ListActivity { ArrayList<String> names = new ArrayList<String>(); ArrayList<String> addresses = new ArrayList<String>(); ArrayList<String> phones = new ArrayList<String>(); ArrayList<String> mobiles = new ArrayList<String>(); String result = ""; int c; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); try { AssetManager assetManager = getResources().getAssets(); InputStream is = assetManager.open("details.json"); while ((c = is.read()) != -1) { result += (char) c; } is.close(); JSONArray jsonArray = new JSONArray(result); for (int i = 0; i < jsonArray.length(); i++) { JSONObject jsonObject = jsonArray.getJSONObject(i); names.add(jsonObject.getString("name")); addresses.add(jsonObject.getString("address")); phones.add(jsonObject.getString("phone")); mobiles.add(jsonObject.getString("mobile")); JSONArray jsonArray1 = new JSONArray("menu"); for (int j = 0; j < jsonArray1 .length(); i++) {
JSONObject jsonObject1 = jsonArray1.getJSONObject(j);
names.add(jsonObject1.getString("name"));
addresses.add(jsonObject1.getString("price"));
} //j } // i } catch (Exception e) { Toast.makeText(getApplicationContext(),"ERROR:" + e.getMessage(),Toast.LENGTH_LONG).show(); }
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .