一、首先需要在Eclipse工程中导入相关的jar包,
jar包参见链接:http://download.csdn.net/detail/filywysss/4991496
二、提供一份待解析的json文件,apkinfo.json如下:[
{
"name":"帐号",
"package_name":"com.android.account",
"check_version":"1.2"
},
{
"name":"系统升级",
"package_name":"com.android.osupdate",
"check_version":"1.0"
},
]
三、Java代码由两个类组成,一个是读取文件内容的Util类,还有一个是主程序Test类。
(1)Util.java:
- import java.io.BufferedReader;
- import java.io.FileInputStream;
- import java.io.IOException;
- import java.io.InputStreamReader;
- /**
- * 类说明
- * @author wangliang E-mail: liangwang@lagou.com
- * @version 0.0.1
- * @date 创建时间:2016年5月6日 下午1:46:52
- */
- public class Util {
- public String ReadFile(String Path){
- BufferedReader reader = null;
- String laststr = "";
- try{
- FileInputStream fileInputStream = new FileInputStream(Path);
- InputStreamReader inputStreamReader = new InputStreamReader(fileInputStream, "UTF-8");
- reader = new BufferedReader(inputStreamReader);
- String tempString = null;
- while((tempString = reader.readLine()) != null){
- laststr += tempString;
- }
- reader.close();
- }catch(IOException e){
- e.printStackTrace();
- }finally{
- if(reader != null){
- try {
- reader.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- }
- return laststr;
- }
- }
(2)Test.java:
- import java.io.UnsupportedEncodingException;
- import java.util.List;
- import net.sf.ezmorph.bean.MorphDynaBean;
- import net.sf.json.JSONArray;
- import net.sf.json.JSONObject;
- /**
- * 类说明
- * @author wangliang E-mail: liangwang@lagou.com
- * @version 0.0.1
- * @date 创建时间:2016年5月6日 下午1:46:18
- */
- public class JsonTest {
- @SuppressWarnings({ "static-access", "deprecation", "unchecked" })
- public static void main(String[] args) throws UnsupportedEncodingException {
- String JsonContext = new Util().ReadFile("D:\\test\\apkinfo.json");
- JSONArray jsonArray = JSONArray.fromObject(JsonContext);
- /*String s= java.net.URLDecoder.decode(JsonContext, "utf-8");
- JSONObject jsonArray = new JSONObject();*/
- int size = jsonArray.size();
- System.out.println("Size: " + size);
- for(int i = 0; i < size; i++){
- JSONObject jsonObject = jsonArray.getJSONObject(i);
- System.out.println("[" + i + "]name=" + jsonObject.get("name"));
- System.out.println("[" + i + "]package_name=" + jsonObject.get("package_name"));
- System.out.println("[" + i + "]check_version=" + jsonObject.get("check_version"));
- }
- List<MorphDynaBean> listObject = jsonArray.toList(jsonArray);
- for(int i = 0, j = listObject.size(); i < j ; i++){
- System.out.println(listObject.get(i));
- }
- for(MorphDynaBean temp: listObject){
- System.out.println(temp.get("name"));
- }
- }
- }
四、执行后的结果如下:
Size: 2
[0]name=帐号
[0]package_name=com.android.account
[0]check_version=1.2
[1]name=系统升级
[1]package_name=com.android.osupdate
[1]check_version=1.0
net.sf.ezmorph.bean.MorphDynaBean@6a1fbe[
{name=帐号, package_name=com.android.account, check_version=1.2}
]
net.sf.ezmorph.bean.MorphDynaBean@1589d3d[
{name=系统升级, package_name=com.android.osupdate, check_version=1.0}
]
帐号
系统升级