آموزش کار با جیسون (J Son) در اندروید استودیو

جیسون

آموزش کامل جیسون (j son) در اندروید استودیو : 

در محیط اندروید علاوه بر تمامی کتابخانه هایی که تا الان با آن ها شده اید یک مدل دیگر از کتابخانه هم دارد و حاوی json.org هستند که کار با فایل json را راحت تر و آسان تر و البته پر کاربرد تر می کند.

جیسون چیست؟

j son بر گرفته از java script object Notation می باشد. j son یا جن سن فرمتی استاندارد و باز است که در انتقال داده ها و اطلاعات (بین مرور گر و سایت) استفاده می شود و بهترین انتخاب برای XML است.
j son از زبان اسکریپت نویسی ( جاوا اسکریپت ) برای نمایش ساختار های ساده و آرایه های پیچیده استفاده می کند و می تواند مستقل از جاوا اسکریپت در زبان های دیگر هم قابل تفسیر و کار کردن باشند.

و اما چند مفهوم در جیسون :

 
Object : هر عبارتی که با علامت آکولاد شروع و با آکولاد بسته تمام بشود. ( مجموعه ای نا مرتب از داده ها )
Array : هر عبارتی که با علامت قلاب شروع و با آن ختم بشود یک آرایه به حساب می آید. که شامل چندین مقدار از یک نوع ارزش است.
 
Value: این مورد شامل الف) اعداد ب) رشته ها ج) آبجکتی دیگر د) مقدار تهی یکی از مهم ترین کاربرد های j son استفاده از آن در تکنولوژی آرایه ای دیگر آژاکس است _ ( تکنولوژی که با استفاده از زبان جاوا اسکریپت درخواست هایی را به سرور وب سایت ارسال می کند و بدون نیاز به تغییر آدرس صفحه یا بارگذاری مجدد آن ، تغییراتی را در صفحه ایجاد می کند ). که به این ترتیب صفحاتی پویا و داینامیک داریم.

و اما خواندن j son در برنامه نویسی اندروید :

ابتدا باید دو کتاب خانه volley و http رو برای برقراری ارتباط با بیرون از برنامه (اینترنت) در بخش build gradle level اضافه کنیم که به شکل زیر است.
Gradle
[php] 
compile ‘com.android.volley:volley:1.0.0’
compile ‘org.jbundle.util.osgi.wrapped:org.jbundle.util.osgi.wrapped.org.apache.http.client:4.1.2’ [/php]
 
 
سپس دکمه sync را فشرده و منتظر به اصطلاح دانلود شدن متد ها بمانید.
سپس به بخش AndroidManifest رفته و دسترسی یا Permission های زیر را اضافه کنید این دسترسی ها برای اتصال به اینترنت لازم است.
Androidmanifest.xml
[php] 
<uses-permission android:name="android.permission.INTERNET" /> [/php]
 
 
پس از آن اکتیویتی که ساخته اید باز کرده و کد های زیر را در آن قرار دهید تمامی بخش ها به صورت کامل توضیح داده خواهد شد.
Mainactivity.java
 

[php] 
import android.content.Context;
import android.content.Entity;
import android.os.AsyncTask;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
 
import com.android.volley.toolbox.HttpClientStack;
 
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.util.EntityUtils;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
 
import java.io.IOException;
 
public class MainActivity extends AppCompatActivity {
 
HttpResponse response;
String str;
JSONObject json=null;
String id,email,name;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
try {
new Getdatafromdatabase(MainActivity.this).execute();
}
catch (Exception e)
{
 
}
}
private class Getdatafromdatabase extends AsyncTask<Void, Void, Void> {
public Context context;
 
 
public Getdatafromdatabase(Context context) {
this.context = context;
}
 
@Override
protected void onPreExecute() {
super.onPreExecute();
}
 
@Override
protected Void doInBackground(Void… arg0) {
 
HttpClient myClient = new DefaultHttpClient();
HttpPost myConnection = new HttpPost("http://studioapk.ir/bebinobego/send-data.php");
 
try {
response = myClient.execute(myConnection);
str = EntityUtils.toString(response.getEntity(), "UTF-8");
 
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
 
try {
JSONArray jArray = new JSONArray(str);
json = jArray.getJSONObject(1);
 
} catch (JSONException e) {
e.printStackTrace();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
 
protected void onPostExecute(Void result) {
try {
id = json.getString("id");
email = json.getString("email");
name = json.getString("name");
 
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
 
 
}
}
[/php]
 
کد بالا رو ما متغیر هایی از نوع JSONObject و HttpResponse  داریم متغیر اولی برای بازکردن json وبررسی دیتا هایی که از طریق httprepsonse هستن به کار می رود همان طور که می بینید
ما با استفاده از httpresponse دیتا رو دریافت کردیم و برای دستیابی به اطلاعات json یک jsonarray در نظر گرفتیم.
و این رو بگم همینطور که در بالا json تعریف شد ما دونوع دیتا از جی سون داریم و دریافت هرکدام از آنها فرق دارد ما بخش ارایه را در حال توضیح دادن هستیم و علت استفاده از utf-8 پشتیبانی کردن دیتای دریافت شده از زبان فارسی است.
 
اگر قرار گرفته نشود حروف و کارکتر های به صورت ناخوانا در میایند. و با استفاده از دستور
 
[php]  new Getdatafromdatabase(MainActivity.this).execute(); [/php]
 
دیتا دریافت شده و در سه متغییر email و  id و name قرار میگیرند و قابل استفاده خواهند بود.

مطلب مفیدی برای شما بود ؟ پس به اشتراک بگذارید برای دوستانتان

codesrcReza

109 مطلب منتشر شده

درباره این مطلب نظر دهید !