如何解析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)*。我找不到一个好的图书馆。 –