android中怎么解析原生JSON
android中怎么解析原生JSON,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

创新互联拥有网站维护技术和项目管理团队,建立的售前、实施和售后服务体系,为客户提供定制化的成都网站制作、做网站、网站维护、成都二枢机房解决方案。为客户网站安全和日常运维提供整体管家式外包优质服务。我们的网站维护服务覆盖集团企业、上市公司、外企网站、成都商城网站开发、政府网站等各类型客户群体,为全球上千家企业提供全方位网站维护、服务器维护解决方案。
JSONObject:JSON数据封装对象
JSONArray:JSON数据封装数组
Bean:
package net.bwie.jsonobject;
import java.util.List;
public class ShoppingBean {
private String msg;
private InfoBean info;
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
public InfoBean getInfo() {
return info;
}
public void setInfo(InfoBean info) {
this.info = info;
}
@Override
public String toString() {
return "ShoppingBean{" +
"msg='" + msg + '\'' +
", info=" + info +
'}';
}
public static class InfoBean {
private int cat_id;
private List good;
private boolean url;
public int getCat_id() {
return cat_id;
}
public void setCat_id(int cat_id) {
this.cat_id = cat_id;
}
public List getGood() {
return good;
}
public void setGood(List good) {
this.good = good;
}
public boolean isUrl() {
return url;
}
public void setUrl(boolean url) {
this.url = url;
}
@Override
public String toString() {
return "InfoBean{" +
"cat_id=" + cat_id +
", good=" + good +
", url=" + url +
'}';
}
public static class GoodsBean {
private long add_time;
private String colorcode;
private String currency_price;
private String description;
private String goods_id;
private String goods_name;
private String thumb;
public long getAdd_time() {
return add_time;
}
public void setAdd_time(long add_time) {
this.add_time = add_time;
}
public String getColorcode() {
return colorcode;
}
public void setColorcode(String colorcode) {
this.colorcode = colorcode;
}
public String getCurrency_price() {
return currency_price;
}
public void setCurrency_price(String currency_price) {
this.currency_price = currency_price;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public String getGoods_id() {
return goods_id;
}
public void setGoods_id(String goods_id) {
this.goods_id = goods_id;
}
public String getGoods_name() {
return goods_name;
}
public void setGoods_name(String goods_name) {
this.goods_name = goods_name;
}
public String getThumb() {
return thumb;
}
public void setThumb(String thumb) {
this.thumb = thumb;
}
@Override
public String toString() {
return "GoodsBean{" +
"add_time=" + add_time +
", colorcode='" + colorcode + '\'' +
", currency_price='" + currency_price + '\'' +
", description='" + description + '\'' +
", goods_id='" + goods_id + '\'' +
", goods_name='" + goods_name + '\'' +
", thumb='" + thumb + '\'' +
'}';
}
}
}
} Activity:
/**
* 1、将json文件存在外部存储中,使用IO流读取文件中的数据
* 2、使用JSONObject解析读取出来的数据
*/
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
private String mJson = "";
protected Button mReadFileBtn;
protected Button mParseBtn;
protected TextView mResultTv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
super.setContentView(R.layout.activity_main);
initView();
}
@Override
public void onClick(View view) {
if (view.getId() == R.id.read_file_btn) {
readFile();
} else if (view.getId() == R.id.parse_btn) {
ShoppingBean shopping = parseJson();
Log.d("1507", "" + shopping);
}
}
// 解析JSON数据
// 遇到{}就创建JSONObject,遇到[]就创建JSONArray
private ShoppingBean parseJson() {
ShoppingBean shopping = null;
try {
JSONObject rootObject = new JSONObject(mJson);
shopping = new ShoppingBean();
String msg = rootObject.getString("msg");
shopping.setMsg(msg);
JSONObject infoObject = rootObject.getJSONObject("info");
ShoppingBean.InfoBean info = new ShoppingBean.InfoBean();
shopping.setInfo(info);
int catId = infoObject.getInt("cat_id");
info.setCat_id(catId);
boolean url = infoObject.getBoolean("url");
info.setUrl(url);
JSONArray goodsArray = infoObject.getJSONArray("goods");
List goodsList = new ArrayList<>();
info.setGood(goodsList);
for (int i = 0; i < goodsArray.length(); i++) {
JSONObject goodsObject = goodsArray.getJSONObject(i);
ShoppingBean.InfoBean.GoodsBean goods = new ShoppingBean.InfoBean.GoodsBean();
long addTime = goodsObject.getLong("add_time");
goods.setAdd_time(addTime);
String colorCode = goodsObject.getString("colorcode");
goods.setColorcode(colorCode);
String currencyPrice = goodsObject.getString("currency_price");
goods.setCurrency_price(currencyPrice);
String description = goodsObject.getString("description");
goods.setDescription(description);
String goodsName = goodsObject.getString("goods_name");
goods.setGoods_name(goodsName);
String thumb = goodsObject.getString("thumb");
goods.setThumb(thumb);
goodsList.add(goods);
}
} catch (Exception e) {
e.printStackTrace();
}
return shopping;
}
// 读取文件中的JSON数据
private void readFile() {
// 根目录
// Environment.getExternalStorageDirectory()
// 外部存储公共路径,例如:DCIM,DOWNLOADS等系统提供的文件夹
// Environment.getExternalStoragePublicDirectory(类型)
// 外部存储私有路径:Android文件夹
// context.getExternalFilesDir(null)
// downloads文件夹路径
String filePath = Environment
.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS)
.getAbsolutePath();
String fileName = "json.txt";
File file = new File(filePath, fileName);
// 文件字符输入流
// 字缓符输入冲流
BufferedReader br = null;
try {
br = new BufferedReader(new FileReader(file));
String line = new String();
while ((line = br.readLine()) != null) {
mJson += line;
}
if (mJson != null) {
mResultTv.setText(mJson);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
private void initView() {
mReadFileBtn = (Button) findViewById(R.id.read_file_btn);
mReadFileBtn.setOnClickListener(MainActivity.this);
mParseBtn = (Button) findViewById(R.id.parse_btn);
mParseBtn.setOnClickListener(MainActivity.this);
mResultTv = (TextView) findViewById(R.id.result_tv);
}
} 权限:
关于android中怎么解析原生JSON问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注创新互联行业资讯频道了解更多相关知识。
网页题目:android中怎么解析原生JSON
当前URL:http://www.jxjierui.cn/article/iieeic.html


咨询
建站咨询
