您的位置:首页 > Web前端 > JavaScript

解析JSON最外层是集合------->[]

2016-05-23 14:06 591 查看
package com.example.text;

import java.io.IOException;

import java.util.ArrayList;

import java.util.List;

import org.apache.http.HttpEntity;

import org.apache.http.HttpResponse;

import org.apache.http.client.ClientProtocolException;

import org.apache.http.client.HttpClient;

import org.apache.http.client.methods.HttpGet;

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 com.loopj.android.image.SmartImageView;

import android.os.Bundle;

import android.os.Handler;

import android.os.Message;

import android.view.LayoutInflater;

import android.view.View;

import android.view.ViewGroup;

import android.widget.BaseAdapter;

import android.widget.ListView;

import android.widget.TextView;

import android.annotation.SuppressLint;

import android.app.Activity;

public class MainActivity extends Activity {

private List<Bean> bean;

private ListView lv;

@SuppressLint("HandlerLeak")

private Handler handler=new Handler(){

@SuppressWarnings("unchecked")

public void handleMessage(android.os.Message msg) {

bean = (List<Bean>) msg.obj;

lv.setAdapter(new Myadapter());

}

;

};

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

lv=(ListView) findViewById(R.id.listView1);

new Thread() {

public void run() {

String path = "http://172.17.29.120/localuser/ljy/datas/data.json";

// 创建HttpClient对象

HttpClient httpClient = new DefaultHttpClient();

// 创建请求方式

HttpGet httpget = new HttpGet(path);

try {

HttpResponse httpResponse = httpClient.execute(httpget);

HttpEntity entity = httpResponse.getEntity();

String string = EntityUtils.toString(entity, "gbk");

//得到JSONArray对象

JSONArray ja = new JSONArray(string);

//创建一个集合

List<Bean> list = new ArrayList<Bean>();

//循环解析ja 添加到集合中

for (int i = 0; i < ja.length(); i++) {

JSONObject jo = ja.optJSONObject(i);

list.add(new Bean(jo.getString("intro"),

jo.getString("pic"), jo.getString("title")));

}

Message msg=Message.obtain();

msg.obj=list;

handler.sendMessage(msg);

} catch (ClientProtocolException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

// 判断,并解析

catch (JSONException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

};

}.start();

}

// public static ArrayList<Bean> getBeanl(String json){

//

// return gson.fromJson(json, new TypeToken<List<Bean>>(){}.getType());

// }

class Myadapter extends BaseAdapter{

@Override

public int getCount() {

// TODO Auto-generated method stub

return bean.size();

}

@Override

public Object getItem(int position) {

// TODO Auto-generated method stub

return null;

}

@Override

public long getItemId(int position) {

// TODO Auto-generated method stub

return 0;

}

@Override

public View getView(int position, View v, ViewGroup parent) {

ViewHolder holder;

if (v == null) {

holder = new ViewHolder();

v = LayoutInflater.from(MainActivity.this).inflate(R.layout.list_item, null);

holder.content = (TextView) v.findViewById(R.id.content);

holder.img = (SmartImageView) v.findViewById(R.id.img);

holder.title = (TextView) v.findViewById(R.id.title);

v.setTag(holder);

} else {

holder = (ViewHolder) v.getTag();

}

holder.img.setImageUrl(bean.get(position).getPic());

holder.title.setText(bean.get(position).getTitle());

holder.content.setText(bean.get(position).getIntro());

return v;

}

}

class ViewHolder {

private SmartImageView img;

private TextView title;

private TextView content;

}

}

package com.example.text;

import java.io.IOException;

import java.util.ArrayList;

import java.util.List;

import org.apache.http.HttpEntity;

import org.apache.http.HttpResponse;

import org.apache.http.client.ClientProtocolException;

import org.apache.http.client.HttpClient;

import org.apache.http.client.methods.HttpGet;

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 com.loopj.android.image.SmartImageView;

import android.os.Bundle;

import android.os.Handler;

import android.os.Message;

import android.view.LayoutInflater;

import android.view.View;

import android.view.ViewGroup;

import android.widget.BaseAdapter;

import android.widget.ListView;

import android.widget.TextView;

import android.annotation.SuppressLint;

import android.app.Activity;

public class MainActivity extends Activity {

private List<Bean> bean;

private ListView lv;

@SuppressLint("HandlerLeak")

private Handler handler=new Handler(){

@SuppressWarnings("unchecked")

public void handleMessage(android.os.Message msg) {

bean = (List<Bean>) msg.obj;

lv.setAdapter(new Myadapter());

}

;

};

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

lv=(ListView) findViewById(R.id.listView1);

new Thread() {

public void run() {

String path = "http://172.17.29.120/localuser/ljy/datas/data.json";

// 创建HttpClient对象

HttpClient httpClient = new DefaultHttpClient();

// 创建请求方式

HttpGet httpget = new HttpGet(path);

try {

HttpResponse httpResponse = httpClient.execute(httpget);

HttpEntity entity = httpResponse.getEntity();

String string = EntityUtils.toString(entity, "gbk");

//得到JSONArray对象

JSONArray ja = new JSONArray(string);

//创建一个集合

List<Bean> list = new ArrayList<Bean>();

//循环解析ja 添加到集合中

for (int i = 0; i < ja.length(); i++) {

JSONObject jo = ja.optJSONObject(i);

list.add(new Bean(jo.getString("intro"),

jo.getString("pic"), jo.getString("title")));

}

Message msg=Message.obtain();

msg.obj=list;

handler.sendMessage(msg);

} catch (ClientProtocolException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

// 判断,并解析

catch (JSONException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

};

}.start();

}

// public static ArrayList<Bean> getBeanl(String json){

//

// return gson.fromJson(json, new TypeToken<List<Bean>>(){}.getType());

// }

class Myadapter extends BaseAdapter{

@Override

public int getCount() {

// TODO Auto-generated method stub

return bean.size();

}

@Override

public Object getItem(int position) {

// TODO Auto-generated method stub

return null;

}

@Override

public long getItemId(int position) {

// TODO Auto-generated method stub

return 0;

}

@Override

public View getView(int position, View v, ViewGroup parent) {

ViewHolder holder;

if (v == null) {

holder = new ViewHolder();

v = LayoutInflater.from(MainActivity.this).inflate(R.layout.list_item, null);

holder.content = (TextView) v.findViewById(R.id.content);

holder.img = (SmartImageView) v.findViewById(R.id.img);

holder.title = (TextView) v.findViewById(R.id.title);

v.setTag(holder);

} else {

holder = (ViewHolder) v.getTag();

}

holder.img.setImageUrl(bean.get(position).getPic());

holder.title.setText(bean.get(position).getTitle());

holder.content.setText(bean.get(position).getIntro());

return v;

}

}

class ViewHolder {

private SmartImageView img;

private TextView title;

private TextView content;

}

}

---------------------------------------------------------------

package com.example.text;

public class Bean {

private String intro;

private String pic;

private String title;

public void setIntro(String intro) {

this.intro = intro;

}

public String getIntro() {

return this.intro;

}

public Bean(String intro, String pic, String title) {

super();

this.intro = intro;

this.pic = pic;

this.title = title;

}

public void setPic(String pic) {

this.pic = pic;

}

public String getPic() {

return this.pic;

}

public void setTitle(String title) {

this.title = title;

}

public String getTitle() {

return this.title;

}

}

-----------------------------------------------------------------

xml文件

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

xmlns:tools="http://schemas.android.com/tools"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:paddingBottom="@dimen/activity_vertical_margin"

android:paddingLeft="@dimen/activity_horizontal_margin"

android:paddingRight="@dimen/activity_horizontal_margin"

android:paddingTop="@dimen/activity_vertical_margin"

tools:context=".MainActivity" >

<ListView

android:id="@+id/listView1"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:layout_alignParentRight="true"

android:layout_alignParentTop="true" >

</ListView>

</RelativeLayout>

---------------------------------------------------------------

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="horizontal" >

<com.loopj.android.image.SmartImageView

android:id="@+id/img"

android:layout_width="match_parent"

android:layout_height="150dp"

android:layout_weight="1"

android:src="@drawable/ic_launcher" >

</com.loopj.android.image.SmartImageView>

<LinearLayout

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:layout_weight="1"

android:orientation="vertical" >

<TextView

android:id="@+id/title"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:layout_weight="1"

android:gravity="center"

android:singleLine="true"

android:text="英国英国英国英国英国"

android:textColor="#f00"

android:textSize="18sp" />

<TextView

android:id="@+id/content"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:layout_weight="1"

android:gravity="center"

android:singleLine="true"

android:text="英国英国英国英国英国"

android:textSize="18sp" />

</LinearLayout>

</LinearLayout>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: