Android : JSON存取数据 以及 DOM读取XML数据

##DOM 读取XML 数据(XML保存少量数据的时候后可以选择DOM解析)

1.保存数据的XML文件 users.xml的路径: assets/user/users.xml (在assets目录下新建一个user目录,保存users.xml)

<?xml version="1.0" encoding="utf-8"?>
<users>
<user>
<id>1</id>
<name>roking</name>
<age>25</age>
</user>

<user>

<id>2</id>
<name>yinuo</name>
<age>24</age>
</user>

</users>

2.写一个User类对应users.xml中的user(定义id,name,age,实现set,get方法)

3.写java code读取user.xml中保存的数据

String fileName = "user/users.xml"; //提示:xml在code的使用路径

public static List<User> getUsersFromXml(String fileName) {
Leg.d(TAG, String.format("getUsersFromXml(%s)", fileName));
List<User> userList = new ArrayList<User>();

DocumentBuilderFactory factory = null;
DocumentBuilder builder = null;
Document document = null;
InputStream inputStream = null;

try {
Log.i(TAG, "====>try start ..");
// found out XML resource first
factory = DocumentBuilderFactory.newInstance();
// found out XML resource and upload
builder = factory.newDocumentBuilder();
inputStream = mContext.getResources().getAssets().open(fileName);

document = builder.parse(inputStream);
// found out root element "users"
Element root = document.getDocumentElement();
// found out all elements "user"
NodeList nodes = root.getElementsByTagName(NODE);
// traverse all "user" nodes
User user = null;
for (int i = 0; i < nodes.getLength(); i++) {
user = new User();
// obtain element node
Element user = (Element) (nodes.item(i));

Element id = (Element) user.getElementsByTagName("id").item(0);
user.setId(id.getFirstChild().getNodeValue());

Element name = (Element) user.getElementsByTagName("name").item(0);
user.setName(name.getFirstChild().getNodeValue());

Element age = (Element) user.getElementsByTagName("age").item(0);
user.setAge(age.getFirstChild().getNodeValue());

Log.i(TAG, String.format("user(%s:%s:%s)", user.getId(),user.getName(),user.getAge()));
userList.add(user);
}
} catch (Exception e) {
Leg.d(TAG, String.format("Exception(%s)", e.getMessage()));
} finally {
try {
Leg.d(TAG, String.format("inputStream.close()"));
inputStream.close();
} catch (IOException e) {
Leg.d(TAG,String.format("inputStream.close:Exception(%s)",e.getMessage()));
}
}
return userList;
}

******************************************************************************************************************

##使用JSON保存,然后读取数据

1.保存JSON数据,读取JSON数据

final String USER="user";

final String ID ="id";

final String NAME="name";

final String AGE="age";

public final static String USER_JSON= "{"
+ USER+":["
+ "{"+ID+":\"1\","+NAME+":\"roking\","+AGE+":\"25\"},"
+ "{"+ID+":\"2\","+NAME+":\"yinuo\","+AGE+":\"24\"},"
+ "]," + "\"success\":true" + "}";

2. 对应USER_JSON中的数据创建User类(定义id,name,age,实现set,get方法)

3.写java code获取JSON中保存的数据

public List<User> readJSON(String json){ 
List<User> users = null;
User user = null;
Log.i(TAG, "readJSON = "+json);
try{
//JSONObject
JSONObject jsonObject = new JSONObject(json);
Boolean success = jsonObject.getBoolean("success");
if(success){
users = new ArrayList<User>();
JSONArray jsonArray = jsonObject.getJSONArray(USER);
for(int i =0 ; i< jsonArray.length();i++){
JSONObject item = jsonArray.getJSONObject(i);
//
user = new User();
user.setId(item.getInt(ID));
user.setName(item.getString(NAME));
user.setAge(item.getInt(AGE));
users.add(user);
}
}
}catch(Exception e){
Log.i(TAG, ">>>"+e.toString());
}
return users;
}


******************************************************************************************************************


以上只写出了关键的code

-Hope can help you-


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值