بروز خطا
[message]
اشتراک در سوال
رای ها
[dataList]
خواندن جیسون پیچیده !
سلام
در کد جیسون زیر چطور میشه مقادیر را انتخاب کرد (کمی پیچیده تر از جیسون عادی است) :
"forecast":[{"code":"32","date":"12 Nov 2015","day":"Thu","high":"56","low":"45"
,"text":"Sunny"},{"code":"32"
,"date":"13 Nov 2015","day":"Fri","high":"58","low":"44",
"text":"Sunny"},{"code":"32","date":"14 Nov 2015","day":"Sat","high":"59",
"low":"40","text":"Sunny"},{"code":"32","date":"15 Nov 2015","day":"Sun"
,"high":"54","low":"42","text":"Sunny"},{"code":"32"
,"date":"16 Nov 2015","day":"Mon","high":"61"
,"low":"47","text":"Sunny"}]
در واقع بلاک ها آرایه های با مشخصه هم نام اما مقادیر متفاوت دارند.
+2
0
جیسون شما اصلا استاندارد نیست < در ابتدای این رشته نباید "forecast": وجود داشته باشه < جیسون یا Array هست یا Object (10 سال پیش)
0
0
این جیسون من نیست جیسون yahoo api هست (10 سال پیش)
0
0
.......................ووووووووووووووووو......................................................... (10 سال پیش)
+1
0
اگر نیاز دارید حتما این رو دریافت کنید < آموزش استاد در مورد Client فک کنم بخش 10 هست که سورس گوگل رو میگیرند < شما هم میتونید محتوی String رو دریافت کنید و از String.replace عبارت ابتدایی که جیسون نیست رو حذف کنید < یا مقدار String شما یک جیسون استاندارد هست میتونید اون رو برابر با JsonArray قرار بدید (10 سال پیش)
برای این سوال 1 پاسخ وجود دارد.
پاسخ به سوال
Hamedmtn
10 سال پیش
+1
0
در واقع این یک json Array می باشد. که برای دریافت محتویات داخل آن باید کمی متفاوت تر از JSONObject عمل کرد :
JSONObject json = new JSONObject(httpPosCode);
JSONObject array1 = json.getJSONObject("query");
JSONObject array2 = array1.getJSONObject("results");
JSONObject array3 = array2.getJSONObject("channel");
JSONObject array4 = array3.getJSONObject("item");
JSONArray futureArray = array4.getJSONArray("forecast"); //از آبجکت شماره 4 آرایه ای به نام فورکست دریافت کردیم
JSONObject jsonD1 = futureArray.getJSONObject(0);// اینجا هم خواندن هر کدوم از بلاک ها با گرفتن مقادیر آرایه امکان پذیر میشه
JSONObject jsonD2 = futureArray.getJSONObject(1);
JSONObject jsonD3 = futureArray.getJSONObject(2);
JSONObject jsonD4 = futureArray.getJSONObject(3);
JSONObject jsonD5 = futureArray.getJSONObject(4);
String strDay1 = jsonD1.getString("day");// و در آخر میشه با خواندن هر کلید از عضو دلخواه آرایه مقادیر آن را خارج کرد
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .