精华内容
下载资源
问答
  • java 解析 json文件 java 解析 json文件

    热门讨论 2010-03-22 22:37:18
    java 解析 json文件java 解析 json文件java 解析 json文件java 解析 json文件java 解析 json文件
  • 附件内容为:Java组装map数据,然后转换为json数据格式;Java解析json数据
  • Java解析JSON文件的方法

    千次阅读 2017-02-24 19:30:14
    Java解析JSON文件的方法

    Java解析JSON文件的方法

    转自:http://blog.sina.com.cn/s/blog_628cc2b70101dydc.html

    一、首先需要在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;
    
    
    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
    展开全文
  • java解析json字符串方法总结

    千次阅读 2017-08-30 16:30:19
    java解析json字符串方法总结

    java解析json字符串方法总结

    测试方法:

    package json;
    
    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.Iterator;
    import java.util.List;
    import java.util.Map;
    
    import net.sf.json.JSONArray;
    import net.sf.json.JSONObject;
    
    public class JsonTest {
    	public static void main(String[] args) {
    		//生成json字符串
    		generate();
    		
    		//待解析字符串
    		String json = "{'name':'zxc','sex':'男','job':'java'}";
    		//解析简单json字符串的三种方法
    		easy(json);
    		
    		//待解析稍微复杂json字符串
    		String json2 = "{'name':'zxc','sex':'男','job':'java','data':{'chinese':'100','math':'100','english':'100'}}";
    		complex(json2);
    		
    		//待解数组形式json字符串
    		String json3 = "[{'name':'z','sex':'男','job':'java'},{'name':'x','sex':'男','job':'java'},{'name':'c','sex':'男','job':'java'}]";
    		//解析数组形式字符串
    		array(json3);
    		
    		//待解析复杂json字符串
    		String json4 = "{'name':'zxc','sex':'男','job':'java','cup':[{'redCup':'1','rate':{'hg':'99%','bhg':'98%'}},{'redCup':'2','rate':{'hg':'99%','bhg':'98%'}}]}";
    		verycomplex(json4);
    		
    	}
    	/**
    	 * 根据实体生成字符串
    	 */
    	public static void generate(){
    		//生成简单json字符串
    		People peo = new People();
    		peo.setJob("java");
    		peo.setName("zxc");
    		peo.setSex("男");
    		String jsonStr = JSONObject.fromObject(peo).toString();
    	    System.out.println("根据实体生成json字符串  :"+jsonStr);
    	    //运行结果:根据实体生成json字符串  :{"cup":[],"sex":"男","name":"zxc","data":null,"job":"java"}
    	    
    	    //通过数组或者列表生成Json字符串:
    	    People peo2 = new People();
    	    People peo3 = new People();
    	    
    	    peo2.setName("zxc1");
    	    peo2.setSex("男1");
    	    peo2.setJob("java1");
    	    
    	   /* //增加data属性
    	    Fraction fa = new Fraction();
    	    fa.setChinese("100");
    	    peo2.setData(fa);*/
    	    
    	    peo3.setName("zxc1");
    	    peo3.setSex("男1");
    	    peo3.setJob("java1");
    	    
    	    People[] pe = new People[2];
            List<People> list = new ArrayList<People>();
    
            pe[0] = peo2;
            pe[1] = peo3;
    
            list.add(peo2);
            list.add(peo3);
    
            String jsonStr1 = JSONArray.fromObject(pe).toString();
            String jsonStr2 = JSONArray.fromObject(list).toString();
    
            System.out.println("通过数组生成Json字符串:"+jsonStr1);
            System.out.println("通过列表生成Json字符串:"+jsonStr2);
            //运行结果:
            //通过数组生成Json字符串:[{"cup":[],"sex":"男1","name":"zxc1","data":null,"job":"java1"},{"cup":[],"sex":"男1","name":"zxc1","data":null,"job":"java1"}]
            //通过列表生成Json字符串:[{"cup":[],"sex":"男1","name":"zxc1","data":null,"job":"java1"},{"cup":[],"sex":"男1","name":"zxc1","data":null,"job":"java1"}]
    
            
            //Map生成Json字符串
            Map<String, Object> map = new HashMap<String, Object>();
    
            map.put("name", "zxc");
            map.put("sex", "男");
            map.put("job", "java");
    
            String jsonStr3 = JSONObject.fromObject(map).toString();
            System.out.println("map形式数据生成json字符串"+jsonStr3);
            //运行结果:map形式数据生成json字符串{"sex":"男","name":"zxc","job":"java"}
    	}
    	/**
    	 * 解析简单json字符串
    	 * @param json
    	 */
    	public static void easy(String json){
    		//映射实体类解析(推荐)
    		JSONObject jsonObject = JSONObject.fromObject(json);
    	    People people = (People) JSONObject.toBean(jsonObject, People.class);
    	    System.out.println("根据实体类解析简单json字符串 :name="+people.getName()+"  sex="+people.getSex()+"  job="+people.getJob());
    	    //运行结果:根据实体类解析简单json字符串 :name=zxc  sex=男  job=java
    	    
    	    //不映射实体类,根据元素取值
    	    JSONObject jsonOb = JSONObject.fromObject(json);
    	    String name = jsonOb.getString("name");
            String sex = jsonOb.getString("sex");
            String job = jsonOb.getString("job");
            System.out.println("不映射实体类,根据元素取值解析json简单字符串:name="+name+"  sex="+sex+"  job="+job);
            //运行结果:不映射实体类,根据元素取值解析json简单字符串:name=zxc  sex=男  job=java
            
            //用迭代器迭代输出
            JSONObject jsonObject3 = JSONObject.fromObject(json);
            Iterator keys = jsonObject3.keys();
            String key = null;
            Object value = null;
            System.out.println("迭代解析json简单字符串:");
            while(keys.hasNext()){
                key = (String) keys.next();
                value = jsonObject3.get(key);
                System.out.println("key:"+key+" value:"+value.toString());
            }
            //运行结果:
            //迭代解析json简单字符串:
            //key:sex value:男
            //key:name value:zxc
            //key:job value:java
            
            Map<String, Object> map = new HashMap<String, Object>();
            map = JSONObject.fromObject(json);
            System.out.println("map方式解析json简单字符串");
            System.out.println(map.get("name"));
            System.out.println(map.get("sex"));
            System.out.println(map.get("job"));
            //运行结果:
            //map方式解析json简单字符串
            //zxc
            //男
            //java
    	}
    	/**
    	 * 解析稍微复杂json字符串
    	 * @param json
    	 */
    	public static void complex(String json){
    		JSONObject jsonObject=JSONObject.fromObject(json);
    		People people=(People)JSONObject.toBean(jsonObject, People.class);
    		System.out.println("解析稍微复杂json字符串:");
    		System.out.println(people.getName());
    		System.out.println(people.getData().getChinese());
    		//运行结果:
    		//解析稍微复杂json字符串:
    		//zxc
    		//100
    	}
    	/**
    	 * 解析复杂json字符串
    	 * @param json
    	 */
    	public static void verycomplex(String json){
    		JSONObject jsonObject=JSONObject.fromObject(json);
    		
    		Map<String, Class> map = new HashMap<String, Class>();  
            map.put("cup", Cup.class); 
            People people = (People) JSONObject.toBean(jsonObject, People.class, map); 
            //这种方式转成对象people.getCup().get(0).getRedCup()取值时候会报错“ net.sf.ezmorph.bean.MorphDynaBean cannotbe cast to Cup” 所以写了上面三行代码代替这段
    		//People people=(People)JSONObject.toBean(jsonObject, People.class);
    		System.out.println("解析复杂json字符串:");
    		System.out.println("取值="+people.getName());
    		System.out.println("取值="+people.getCup().get(0).getRedCup());
    		System.out.println("cup长度="+people.getCup().size());
    		System.out.println("取值="+people.getCup().get(0).getRate().get("bhg"));
    		//运行结果:
    		//解析复杂json字符串:
    		//	取值=zxc
    		//	取值=1
    		//	cup长度=2
    		//	取值=98%
    	}
    	/**
    	 * 解析json数组形式字符串
    	 * @param json
    	 */
    	public static void array(String json){
    		JSONArray jsonArray = JSONArray.fromObject(json);// 首先把字符串转成 JSONArray  对象
    
    		People[] peo = new People[3];
            List<People> list = new ArrayList<People>();
            //通过实体类 解析成数组
            peo = (People[]) JSONArray.toArray(jsonArray, People.class);//转换成数组
            System.out.println("通过实体类 解析json数组成数组通过下标获取元素:"+peo[0].getName());
            //运行结果:通过实体类 解析json数组成数组通过下标获取元素:z
            
            //通过实体类 解析成list(推荐)
            list = (List<People>) JSONArray.toList(jsonArray, People.class);//转换成列表
            for(People p : list){
            	System.out.println("通过实体类 解析json数组成list:"+p.getName());
            }
            //运行结果:
            //通过实体类 解析json数组成list:z
            //通过实体类 解析json数组成list:x
            //通过实体类 解析json数组成list:c
            
            
            //不映射实体类  直接解析数组形式json字符串
    		if(jsonArray.size()>0){
    		System.out.println("不映射实体类  直接解析数组形式json字符串:");
    		  for(int i=0;i<jsonArray.size();i++){
    		    JSONObject job = jsonArray.getJSONObject(i);  // 遍历 jsonarray 数组,把每一个对象转成 json 对象
    		    System.out.println(job.get("name")+" "+job.get("sex")+" "+job.get("job")) ;  // 得到 每个对象中的属性值
    		  }
    		}
    		//运行结果:
    		//不映射实体类  直接解析数组形式json字符串:
    		//	z 男 java
    		//	x 男 java
    		//	c 男 java
    	}
    }
    

    People:

    package json;
    
    import java.util.List;
    
    public class People {
    	private String name;
    	private String sex;
    	private String job;
    	private Fraction data;
    	private List<Cup> cup;
    	
    	public String getName() {
    		return name;
    	}
    	public void setName(String name) {
    		this.name = name;
    	}
    	public String getSex() {
    		return sex;
    	}
    	public void setSex(String sex) {
    		this.sex = sex;
    	}
    	public String getJob() {
    		return job;
    	}
    	public void setJob(String job) {
    		this.job = job;
    	}
    	public Fraction getData() {
    		return data;
    	}
    	public void setData(Fraction data) {
    		this.data = data;
    	}
    	public List<Cup> getCup() {
    		return cup;
    	}
    	public void setCup(List<Cup> cup) {
    		this.cup = cup;
    	}
    }
    
    Fraction:

    package json;
    
    public class Fraction {
    	private String chinese;
    	private String math;
    	private String english;
    	public String getChinese() {
    		return chinese;
    	}
    	public void setChinese(String chinese) {
    		this.chinese = chinese;
    	}
    	public String getMath() {
    		return math;
    	}
    	public void setMath(String math) {
    		this.math = math;
    	}
    	public String getEnglish() {
    		return english;
    	}
    	public void setEnglish(String english) {
    		this.english = english;
    	}
    	
    }
    

    Cup:

    package json;
    
    import java.util.Map;
    
    public class Cup {
    	private String redCup;
    	private String whiteCup;
    	private Map<String, String> rate;
    	
    	public String getRedCup() {
    		return redCup;
    	}
    	public void setRedCup(String redCup) {
    		this.redCup = redCup;
    	}
    	public String getWhiteCup() {
    		return whiteCup;
    	}
    	public void setWhiteCup(String whiteCup) {
    		this.whiteCup = whiteCup;
    	}
    	public Map<String, String> getRate() {
    		return rate;
    	}
    	public void setRate(Map<String, String> rate) {
    		this.rate = rate;
    	}
    	
    	
    }
    


    展开全文
  • java解析Json字符串

    2010-08-05 10:49:48
    java解析Json字符串java解析Json字符串java解析Json字符串java解析Json字符串
  • java解析json所需jar包

    2017-11-15 17:10:22
    java解析json需要jar包。java解析json需要jar包。java解析json需要jar包。java解析json需要jar包。
  • java解析JSON数据详解

    2020-10-18 21:24:00
    主要介绍了java解析JSON数据详解,具有一定借鉴价值,需要的朋友可以参考下。
  • Java解析JSON文件的方法(一)

    万次阅读 2021-08-19 09:22:17
    Java解析JSON文件的方法(一) 一、首先需要在Eclipse工程中导入相关的jar包,jar包参见链接:http://yunpan.alibaba-inc.com/share/link/NdA5b6IFK 二、 提供一份待解析的json文件,apkinfo.json如下: [ { “name...

    Java解析JSON文件的方法(一)

    一、首先需要在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

    展开全文
  • Java解析Json所含的包

    2017-10-31 15:44:36
    Net.sf.Json Java解析Json所含的包 Java解析Json所含的包 Java解析Json所含的包
  • JAVA解析JSON数据

    2013-03-18 22:58:02
    使用JAVA解析JSON数据,代码不多,简单明了.
  • JAVA解析JSON相关.docx

    2013-05-07 07:57:18
    JAVA解析JSON相关.docx
  • java解析json的jar包

    千次下载 热门讨论 2013-03-18 19:42:03
    java解析json的jar包,功能很强大的jar包。包括json-lib,commons-beanutils,common-collections...
  • Java 解析 json

    1.首先获得 Json这个 Object 然后利用 ObjectMapper将其转为为 String.

    Object result = testTemplate.getForObject("http://127.0.0.1:8090", Object.class);
    ObjectMapper mapper = new ObjectMapper();
    String jsonString = mapper.writeValueAsString(result);

    2.将得到的 jsonString转化为 jsonObject.

    final JSONObject jsonObj = new JSONObject(jsonString);

    3.然后在了解到 josn中是JSONObject还是 JSONArray的情况下解析 jsonObj。

    4.完整的代码:

    public void parseJSON(String url){
        Object result = testTemplate.getForObject(url, Object.class);
        ObjectMapper mapper = new ObjectMapper();
        LinkedMemberDTO linkedMemberDTO = new LinkedMemberDTO();
        List<ResultsDTO> resultsDTOs = new ArrayList<>();
        List<LinkedMemberResultDTO> getResultLists = new ArrayList<>();
        try{
            String jsonString = mapper.writeValueAsString(result);
    
        //得到 JSONObject
            final JSONObject jsonObj = new JSONObject(jsonString);
            linkedMemberDTO.setROOTMemberSrl(jsonObj.getString("name"));
        //得到 JSONArray
            final JSONArray keysArray = resultObject.getJSONArray("result");
    
        //解析得到的 JSONArray
            for(int i = 0; i < jsonResultsArray.length();i++){
                final JSONObject resultObject = jsonResultsArray.getJSONObject(i);
                final JSONArray keysArray = resultObject.getJSONArray("keys");
                Long linkedName = resultObject.getLong("name");
                Double score = resultObject.getDouble("score");
                ......
            }
        }catch().....
    }
    展开全文
  • JAVA解析JSON常用方法及注意事项

    千次阅读 2018-06-25 14:34:11
    分享一个: 在线的json解析器 再分享一个: w3c json教程地址 json支持的数据类型:  - Number 数字型(整数或浮点数)  - String 字符串型(在双引号中)  - Boolean 布尔型(true 或 false)  - ...
  • java解析JSON数据

    2015-09-29 09:23:26
    使用该方法可以轻松解析JSON数组,方便取出JSON数据
  • java解析json完整案例

    2015-10-16 22:56:38
    java获取网络json数据包和解析json数据完整案例。 需要用到json.org也包含在里边。
  • Java解析json 所需jar包

    2017-11-29 11:15:17
    使用Java解析json前的准备工作,需要准备下面的六个jar包
  • java解析json需要的包

    2011-09-13 21:35:53
    java解析json需要的包,程序开发java解析json时需要的全部架包。
  • 主要介绍了JavaJson解析方法,结合实例形式分析了java针对json格式数据的解析实现步骤与相关操作技巧,需要的朋友可以参考下
  • java解析json

    万次阅读 2012-02-20 17:16:52
    1:下载另外一个java的小包就可以了; http://www.JSON.org/java/json_simple.zip ...2:在后端java解析json的代码: //JavaScript之家:http://www.jrose.cn a:把json字符串变成java数组对象形式:
  • java解析json字符串

    热门讨论 2013-03-08 12:52:43
    这个工程里面包含了解析json的jar,和解析json的一个小例子。 在运行这个工程时,需要重新,自行导入工程中,lib目录下的jar包 JSONObject jsonObject = new JSONObject(jsonString);//将字符串转换成JSON对象 ...
  • 使用Java解析Json

    千次阅读 2019-08-11 22:52:07
    一、什么是JSON 1.JSON全称JavaScript Object Notation 2.JSON是一种轻量级的数据交换格式 3.JSON有两种结构 json对象 和 json数组 4.json对象 为 {key:value,key...5.json数组 结构为 ["java","javascript","...
  • java解析json的类库,能将对象或集合直接转换成json格式,也支持反向转换
  • java解析json数据

    千次阅读 2019-06-04 15:55:03
    1、远程调用第三方项目,获取json数据之后进行解析。 第三方数据: 2、直接上代码: package com.hera.test; import java.util.HashMap; import java.util.Map; import org.json.JSONArray; ...
  • java解析jsonNode

    千次阅读 2019-10-10 13:24:03
    // 实例化 ObjectMapper 对象 ObjectMapper objectMapper = new ObjectMapper(); // json 消息 String json = "{\"firstname\":\"Bo\",\"lastname\":\"Shang\",\"age\":... // 将 json 转成 JsonNode 对象 ...
  • java解析json依赖JAR包

    热门讨论 2011-01-26 16:23:44
    JAVA 解析JSON所需要的jar包 包括commons的4个,ezmorph-1.0.6的一个,以及一个json的核心jar包
  • java解析json格式字符串所需jar包 可以自己下载

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 192,769
精华内容 77,107
关键字:

java解析json的方法

java 订阅