您好,登录后才能下订单哦!
密码登录
            
            
            
            
        登录注册
            
            
            
        点击 登录注册 即表示同意《亿速云用户服务条款》
        android中怎么解析原生JSON,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
JSONObject:JSON数据封装对象
JSONArray:JSON数据封装数组
<?xml version="1.0" encoding="utf-8"?> <LinearLayout android:orientation="vertical" xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="net.bwie.jsonobject.MainActivity"> <Button android:id="@+id/read_file_btn" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="读取文件中的json数据"/> <Button android:id="@+id/parse_btn" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="解析json数据"/> <TextView android:id="@+id/result_tv" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello World!"/> </LinearLayout>
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<GoodsBean> 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<GoodsBean> getGood() {
   return good;
  }
  public void setGood(List<GoodsBean> 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<ShoppingBean.InfoBean.GoodsBean> 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);
 }
}权限:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
关于android中怎么解析原生JSON问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注亿速云行业资讯频道了解更多相关知识。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。