`
jilong-liang
  • 浏览: 480461 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类

Jsoup+json-lib解析xml带中括号的数组Json数据

阅读更多
<?xml version="1.0" encoding="UTF-8"?>
<result>
	<status>1</status>
	<!-- 带中括号的Json数据 -->
	<info>
	    [{"Student":{"userName":"张三","age":"25","address":"中国大陆","Email":"zhangsan@sina.com"}},{"Student":{"userName":"李四","age":"26","address":"中国台湾","Email":"lisi@sina.com"}}]
	</info>
</result>

 

package com.org.entity;

import java.io.Serializable;

/**
 *@Author:liangjilong
 *@Date:2013-10-30
 *@Version:1.0
 *@Email:liangjilong51job@qq.com
 *@Description:
 */
public class Student implements Serializable{
 
	private String userName;
	private String age;
	private String address;
	private String Email;
	public String getUserName() {
		return userName;
	}
	public void setUserName(String userName) {
		this.userName = userName;
	}
	public String getAge() {
		return age;
	}
	public void setAge(String age) {
		this.age = age;
	}
	public String getAddress() {
		return address;
	}
	public void setAddress(String address) {
		this.address = address;
	}
	public String getEmail() {
		return Email;
	}
	public void setEmail(String email) {
		Email = email;
	}

}

 

package com.org.domain;

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
import java.io.Writer;

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;

import com.google.gson.JsonArray;
import com.google.gson.JsonObject;
import com.google.gson.JsonPrimitive;
import com.org.entity.Student;

/**
 * @Author:liangjilong
 * @Date:2013-10-30
 * @Version:1.0
 * @Email:liangjilong51job@qq.com
 * @Description:解析XML里面带中括号的JSON数组的数据
 * http://bbs.csdn.net/topics/380187164
 */
@SuppressWarnings("all")
public class DoMain {
	public static void main(String[] args) throws Exception {
		testJson();
		String fileName="src/stu.xml";
		File file=new File(fileName);
		Document doc=Jsoup.parse(file,"utf-8");
		if(doc!=null){
			//使用Jsoup去解析xml的info节点的Json数据
			String info=doc.select("info").text().toString();
			int start = info.indexOf("[");
			String newJson = info.substring(start, info.lastIndexOf("]")+1);//组装成新的Json数据
			//json-lib-2.2.3-jdk15.jar
			JSONArray jsonArr=JSONArray.fromObject(newJson);
			
			JSONObject objRoot=null;
			/**
			 * 遍历Json数据
			 */
			for(int i=0,l=jsonArr.size();i<l;i++){
				objRoot=jsonArr.getJSONObject(i);
				Object obj=objRoot.get("Student");//Student节点
				JSONObject jsonObj=JSONObject.fromObject(obj);
				
				/**
				 * 方法一、根据key获取value值
				 */
				System.out.println(jsonObj.get("userName")+"\t"+jsonObj.get("age")+"\t"+jsonObj.get("address")+jsonObj.get("Email"));
				System.out.println("==================================================================");
				/**
				 * 方法二、根据对象化获取值
				 */
				Student stu=(Student)jsonObj.toBean(jsonObj,Student.class);
				System.out.println(stu.getUserName()+"\t"+stu.getAge()+"\t"+stu.getAddress()+"\t"+stu.getEmail());
			}
		}
	}
	/**
	 * 文件处理
	 * @param content
	 * @param filePath
	 * @return
	 */
	public static boolean write(String content, String filePath) {  
        boolean flag = true;  
        try {  
            Writer out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(filePath), "utf-8"));  
            out.write("\n" + content);  
            out.close();  
        } catch (Exception ex) {  
            ex.printStackTrace();  
            return false;  
        }  
        return flag;  
    }  
	/**
	 * JsonObject,JsonPrimitive,JsonObject的使用
	 * 
	 */
	private static void testJson() {
		JsonObject jsonObj = new JsonObject();
        JsonArray jsonArr = new JsonArray();
        JsonObject json_Obj = new JsonObject();
        json_Obj.add("key1", new JsonPrimitive("value"));
        json_Obj.add("key2", new JsonPrimitive(1));
        json_Obj.add("key3", new JsonPrimitive(false));
        jsonArr.add(json_Obj);
        jsonObj.add("arr", jsonArr);
       //获取带有中括号数组的Json数据
        System.out.println("str:\t"+jsonObj.toString());
        System.out.println("key=\t"+jsonObj.get("arr"));
	}
}

 

0
0
分享到:
评论

相关推荐

    json-lib-2.4-jdk15.jar所需全部JAR包

    下面是一个简单的示例,展示了如何使用`json-lib`和`jsoup`来解析API返回的JSON数据: ```java import net.sf.json.JSONObject; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; // 假设从API获取到的...

    jsoup-1.14.3-API文档-中文版.zip

    赠送jar包:jsoup-1.14.3.jar; 赠送原API文档:jsoup-1.14.3-javadoc.jar; 赠送源代码:jsoup-1.14.3-sources.jar; 赠送Maven依赖信息文件:jsoup-1.14.3.pom; 包含翻译后的API文档:jsoup-1.14.3-javadoc-API...

    jsoup-1.10.3-API文档-中文版.zip

    赠送jar包:jsoup-1.10.3.jar; 赠送原API文档:jsoup-1.10.3-javadoc.jar; 赠送源代码:jsoup-1.10.3-sources.jar; 赠送Maven依赖信息文件:jsoup-1.10.3.pom; 包含翻译后的API文档:jsoup-1.10.3-javadoc-API...

    jsoup1.8.1+universal-image-loader-1.9.3.rar

    在在线音乐应用的开发中,jsoup可能被用来获取音乐列表、歌手信息或者用户评论等网页数据,为应用程序提供丰富的元数据。 接下来是**Universal Image Loader (UIL)**,这是一款强大的Android图片异步加载、缓存库。...

    jsoup-1.11.3-API文档-中文版.zip

    赠送jar包:jsoup-1.11.3.jar; 赠送原API文档:jsoup-1.11.3-javadoc.jar; 赠送源代码:jsoup-1.11.3-sources.jar; 赠送Maven依赖信息文件:jsoup-1.11.3.pom; 包含翻译后的API文档:jsoup-1.11.3-javadoc-API...

    jsoup-1.13.1-sources.jar

    jsoup-1.13.1-sources.jar

    jsoup-1.7.2-sources.jar

    jsoup-1.7.2-sources.jar ,官网下载的,欢迎免费下载评价。

    jsoup-1.14.3-API文档-中英对照版.zip

    赠送jar包:jsoup-1.14.3.jar; 赠送原API文档:jsoup-1.14.3-javadoc.jar; 赠送源代码:jsoup-1.14.3-sources.jar; 赠送Maven依赖信息文件:jsoup-1.14.3.pom; 包含翻译后的API文档:jsoup-1.14.3-javadoc-API...

    jsoup-1.11.3-API文档-中英对照版.zip

    赠送jar包:jsoup-1.11.3.jar; 赠送原API文档:jsoup-1.11.3-javadoc.jar; 赠送源代码:jsoup-1.11.3-sources.jar; 赠送Maven依赖信息文件:jsoup-1.11.3.pom; 包含翻译后的API文档:jsoup-1.11.3-javadoc-API...

    Java爬虫Jsoup+httpclient获取动态生成的数据

    本文主要讲述如何利用Java编程语言中的Jsoup库和HttpClient工具包来获取和解析动态生成的数据,特别是那些通过JavaScript动态加载的数据。 ### Java爬虫基础 Java爬虫是指使用Java语言编写的一类程序,这些程序...

    jsoup-1.10.3-API文档-中英对照版.zip

    赠送jar包:jsoup-1.10.3.jar; 赠送原API文档:jsoup-1.10.3-javadoc.jar; 赠送源代码:jsoup-1.10.3-sources.jar; 赠送Maven依赖信息文件:jsoup-1.10.3.pom; 包含翻译后的API文档:jsoup-1.10.3-javadoc-API...

    基于springboot+mybatisplus+jsoup+mysql开发web小说网站

    【标题】基于SpringBoot+MyBatisPlus+Jsoup+MySQL开发Web小说网站 在现代互联网环境中,构建一个Web小说网站已经成为许多开发者和创业者的首选项目。本项目使用了Java技术栈,具体包括SpringBoot、MyBatisPlus、...

    基于java+Jsoup+HttpClient的网络爬虫技术的网络新闻分析系统设计与实现(源码+文档)网络爬虫_数据挖掘.zip

    资源名字:基于java+Jsoup+HttpClient的网络爬虫技术的网络新闻分析系统设计与实现(源码+文档)_MySQL_网络爬虫_数据挖掘.zip 资源内容:项目全套源码+完整文档 源码说明: 全部项目源码都是经过测试校正后百分百...

    jsoup-1.15.3.jar

    jsoup-1.15.3.jar,jsoup-1.15.3.jar,jsoup-1.15.3.jar,jsoup-1.15.3.jar,jsoup-1.15.3.jar,jsoup-1.15.3.jar,jsoup-1.15.3.jar,jsoup-1.15.3.jar,jsoup-1.15.3.jar,jsoup-1.15.3.jar,jsoup-1.15.3.jarjsoup-...

    html解析利器 jsoup-1.7.1-sources.jar

    java开源工具 html解析利器 jsoup-1.7.1-sources.jar

    jsoup+httpclient j简单爬虫

    JSoup 将网页内容解析为一个复杂的 DOM 树结构,使得开发者可以通过 CSS 选择器或者直接的节点遍历来查找、提取和修改数据。 例如,要从一个网页中抓取所有的段落(`&lt;p&gt;` 标签),你可以使用以下 JSoup 代码: ```...

    jsoup-1.8.1-javadoc.jar

    jsoup-1.8.1-javadoc.jar jsoup文档

    jsoup-1.5.2-sources.jar

    jsoup 是一款 Java 的 HTML 解析器,可直接解析某个 URL 地址、HTML 文本内容。它提供了一套非常省力的 API,可通过 DOM,CSS 以及类似于 jQuery 的操作方法来取出和操作数据。

    jsoup + jdid网页动态解析,类似火狐firebug的html查看

    在IT行业中,网页动态解析是一项至关重要的技能,特别是在进行网络爬虫、数据分析或者网页自动化时。本文将深入探讨使用jsoup和jdid工具进行网页动态解析的方法,类似于火狐浏览器的firebug功能,帮助开发者更好地...

    httpclient-4.3.3+jsoup-1.7.3模拟登陆csdn

    在1.7.3版本中,Jsoup提供了稳定的API和良好的错误处理机制,非常适合用于网页抓取和数据提取。 要模拟登录CSDN,首先需要了解其登录页面的表单结构。这通常涉及到获取登录URL,然后使用HttpClient发送一个POST请求...

Global site tag (gtag.js) - Google Analytics