آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
مشکل عدم دسترسی خریداران پیشین به برخی آموزش ها برطرف شد
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

آرایه داخل فایل json

پیام  8 سال پیش  8 سال پیش
0 0

سلام دوستان، اگر یک فایل 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(); }
پاسخ به سوال 
پیام  8 سال پیش
0 0

یعنی چه جوری بهتر میگذاشتم؟


پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .