如何解析JSON數組,假設我們在下面給出了一個數組,如何用Java解析這個數組,請幫助我一個代碼。JSON Array Parse
[{"guild": "Crimson", "region": "us", "realm": "Caelestrasz", "timestamp": 1311860040}, {"guild": "Crimson", "region": "us", "realm": "Caelestrasz", "timestamp": 1311511740}]
如何解析JSON數組,假設我們在下面給出了一個數組,如何用Java解析這個數組,請幫助我一個代碼。JSON Array Parse
[{"guild": "Crimson", "region": "us", "realm": "Caelestrasz", "timestamp": 1311860040}, {"guild": "Crimson", "region": "us", "realm": "Caelestrasz", "timestamp": 1311511740}]
String gameJSON = "[{\"guild\": \"Crimson\", \"region\": \"us\", \"realm\": \"Caelestrasz\", \"timestamp\": 1311860040}, {\"guild\": \"Crimson\", \"region\": \"us\", \"realm\": \"Caelestrasz\", \"timestamp\": 1311511740}]";
JSONArray array = new JSONArray(gameJSON);
for (int i = 0; i < array.length(); i++) {
System.out.println(array.getJSONObject(i));
}
// Access by key : value
for (int i = 0; i < array.length(); i++) {
JSONObject element = array.getJSONObject(0);
System.out.format("Player #%d: Realm = %s, Guild = %s\n"
, i + 1, element.get("realm"),element.get("guild"));
}
示例代碼。
首先你必須有型號 如何使它! 例如我們有3個對象像ID,姓名和家庭 你創建了
model_phpservice
public class model_phpservice {
private int id;
private String name;
private String family;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getFamily() {
return family;
}
public void setFamily(String family) {
this.family = family;
}
}
後
類並將它命名爲您必須編寫代碼來解析代碼,我們命名這個類
phpservices
public class phpservices {
private final Context context;
private static final String TAG = "phpservices";
public phpservices(Context context) {
this.context = context;
}
public void jsonrequest(final InterFaceData interFaceData) {
JsonArrayRequest jsonArrayRequest = new
JsonArrayRequest(Request.Method.GET, "http://yourip/youraddress/",
null, new Response.Listener<JSONArray>() {
@Override
public void onResponse(JSONArray response) {
List<model_phpservice> CompleteList=new ArrayList<>();
for (int i = 0; i < response.length(); i++) {
model_phpservice getmydata=new model_phpservice();
try{
JSONObject jsonObject = response.getJSONObject(i);
getmydata.setId(jsonObject.getInt("id")) ;
getmydata.setName(jsonObject.getString("name"));
getmydata.setFamily(jsonObject.getString("family"));
}catch (JSONException e) {
e.printStackTrace();
Log.e(TAG, "getdata: "+"getdata errrorrrr");
}
CompleteList.add(getmydata);
}
if (CompleteList!=null) {
Log.i(TAG, "onResponse: " + "itsok");
interFaceData.oninterface(CompleteList);
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.e(TAG, "onErrorResponse: "+"not ok");
}
});
jsonArrayRequest.setRetryPolicy(new DefaultRetryPolicy(8000,DefaultRetryPolicy.DEFAULT_MAX_RETRIES,DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
RequestQueue requestQueue=Volley.newRequestQueue(context);
requestQueue.add(jsonArrayRequest);
}
public interface InterFaceData{
void oninterface(List<model_phpservice> listtosend);
}
}
我知道也許它很難理解,但正確的代碼
http://yourip/youraddress/
你必須把你的頁面地址,讓你的JSON代碼 因爲如果你測試你的應用程序在仿真器IP,您可以在CMD
和接口我用它查找IP與IPCONFIG,我們需要的接口列表發送到主要活動
,並在主要活動
public class phpservicesActivity extends AppCompatActivity{
private static final String TAG = "phpservicesActivity";
private Button btn_get;
private ListView listView;
// private ProgressBar progress;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_phpservices);
btn_get=(Button)findViewById(R.id.btn_get);
listView=(ListView)findViewById(R.id.list_data);
//progress=(ProgressBar)findViewById(R.id.progress3);
final phpservices servicesss=new phpservices(this);
btn_get.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// progress.setVisibility(View.VISIBLE);
servicesss.jsonrequest(new phpservices.InterFaceData() {
@Override
public void oninterface(List<model_phpservice> completelist) {
if (listtosend!=null)
{
Log.i(TAG, "oninterface: "+"interface is ok");
adapterff adapter =new adapterff(phpservicesActivity.this,completelist);
listView.setAdapter(adapter);
}
else{
Log.e(TAG, "oninterface: "+"error in main activity");
}
//progress.setVisibility(View.INVISIBLE);
}
});
}
});
}
,你需要創建文件太 1瞬移列表視圖適配器類列出 和2中,我們需要在列表視圖
1適配器使用佈局
你用什麼庫?因爲我使用了** Simple.json **,它不支持* JSONArray(gameJSON)*。我找不到一個好的圖書館。 –