Java解析JSON文件的方法
2015-08-23 11:28
537 查看
一、首先需要在Eclipse工程中导入相关的jar包,jar包参见链接:http://yunpan.alibaba-inc.com/share/link/NdA5b6IFK
二、提供一份待解析的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;
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.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
public class Test {
public static void main(String[] args) {
// TODO Auto-generated method stub
String JsonContext = new Util().ReadFile("D:\\test\\apkinfo.json");
JSONArray jsonArray = JSONArray.fromObject(JsonContext);
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"));
}
}
}
四、执行后的结果如下:
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
二、提供一份待解析的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;
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.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
public class Test {
public static void main(String[] args) {
// TODO Auto-generated method stub
String JsonContext = new Util().ReadFile("D:\\test\\apkinfo.json");
JSONArray jsonArray = JSONArray.fromObject(JsonContext);
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"));
}
}
}
四、执行后的结果如下:
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
相关文章推荐
- eclipse卡,相关优化配置
- JAVA 中BIO,NIO,AIO的理解
- Spring-(切面 ->切入点->通知)
- 在myeclipse中点击 deploy 旋钮,在弹出的Project Deployments筐中看不到刚导入的项目,无法部署
- MyEclipse导入项目报错Target runtime com.genuitec.runtime.generic.jee60 is not defined.
- Java记录 -10- 面向对象之封装续
- eclipse使用技巧一
- Java NIO原理图文分析及代码实现
- java的内部类
- java-多线程5-线程组
- struts2 中action 跳转问题 同一个package、不同package
- [leetcode-169]Majority Element(java)
- JDK动态代理
- Struts2学习(四)利用ajax异步上传
- Eclipse(自带的插件) 连接数据库
- java-多线程4
- java学习笔记7
- 构建JDK8报错了,哪位大神能帮忙看下什么原因 ?
- java的static方法并发问题
- Java的自动装箱,拆箱