بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ

ارتباط با فایل json درون asset (حل شده)

مدیریت گفتگو
sun.of.god.7 11 سال پیش
آخرین تغییر: 11 سال پیش

سلام من برای پروژم نیاز دارم که با فایل php لوکال ارتباط جیسون برقرار کنم یعنی بدون وصل شدن به اینترنت این فایل php داخل خود پروژه باشه من فایل php رو داخل asset ساختم و کد جیسون هم نوشتم اما نتونستم ارتباط بر قرار کنم اگه کسی میتونه کمک کنه لطفا زودتر جوابم رو بده

 

 به این روش به asset وصل شدم 
HttpPost post = new HttpPost("file:///android_asset/json.php");
تو این خط کرش میکنه

HttpResponse response = client.execute(post);

نظرات

پاسخ‌ها 2

احمد اسدی 11 سال پیش

یه فایل با پسوند json (زیاد مهم نیست) درست کن و محتویات همین کدها جی سون رو بریز داخلش

حالا همین محتویات از طریق زیر میخونیم و میریزم توی متغییری بنام myJson:

  StringBuilder buf=new StringBuilder();
    InputStream json=getAssets().open("contents.json");
    BufferedReader in=
        new BufferedReader(new InputStreamReader(json, "UTF-8"));
    String myJson; //کل اطلاعات در همین متغیر ذخیره میشه

    while ((str=in.readLine()) != null) {
      buf.append(myJson);
} in.close();

الان جی سون رو داری و میتونی ازش استفاده کنی

نظرات

sun.of.god.7 11 سال پیش

دمت گرم داداش تو stackoverflow جوابشو پیدا کردم

 

با این تابع به فایل جیسونت متصل میشی

   public String loadJSONFromAsset() {
String json = null;
try {
InputStream is = getAssets().open("file.json");
int size = is.available();
byte[] buffer = new byte[size];
is.read(buffer);
is.close();
json = new String(buffer, "UTF-8");
}
catch (IOException ex) {
ex.printStackTrace();
return null;
}
return json;
}

// حالا به روش قدیمی خودمون باهاش ارتباط برقرار میکنیم

G.object = new JSONObject(loadJSONFromAsset());
JSONArray all = G.object.getJSONArray("all");
for (int i = 0; i < all.length(); i++) این هم برای گرفتن اطلاعات و ریختن تو لیست ویو
{
newStruct s = new newStruct();
s.mt = all.getString(i);
mylist.add(s);//

}

// اینم محتوای فایل جیسون به عنوان مثال

{

"all":[
"item1"
,
"item2"
,
"itme..."


]

نظرات


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