`
huibin
  • 浏览: 754444 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
社区版块
存档分类
最新评论

json字符串与xml之间转换 json数组与集合之间转换

阅读更多

 

 

 

 

import net.sf.json.JSON;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import net.sf.json.xml.XMLSerializer;

import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

import org.dom4j.*;
import org.dom4j.io.XMLWriter;

 

 

public class Demo {


 private String firstName;
 private String lastName;
 private String email;
 private static String jsonString = "{ \"programmers\": [{ \"firstName\": \"Elliotte\", \"lastName\":\"Harold\",\"email\": \"
elharo@macfaq.com\" }],"
   + " \"authors\": [{ \"firstName\": \"Isaac\", \"lastName\": \"Asimov\", \"genre\": \"science fiction\" }],"
   + " \"musicians\": [{ \"firstName\": \"Eric\", \"lastName\": \"Clapton\", \"instrument\": \"guitar\" },"
   + "  { \"firstName\": \"Sergei\", \"lastName\": \"Rachmaninoff\", \"instrument\": \"piano\" }] }";

 

 

public String getFirstName() {
  return firstName;
 }

 public void setFirstName(String firstName) {
  this.firstName = firstName;
 }

 public String getLastName() {
  return lastName;
 }

 public void setLastName(String lastName) {
  this.lastName = lastName;
 }

 public String getEmail() {
  return email;
 }

 public void setEmail(String email) {
  this.email = email;
 }

 

 

/**
  * JsonArray to List
  *
  * @param <T>
  * @param obj
  * @param clazz
  * @return
  */
 public static <T> List<T> JsonToList(Object obj, Class clazz) {

  JSONObject jsonObj = JSONObject.fromObject(jsonString);
  List<T> list = new ArrayList<T>();
  for (Iterator iter = jsonObj.keys(); iter.hasNext();) {
   String key = (String) iter.next();
   JSONArray array = jsonObj.getJSONArray(key);

   for (int i = 0; i < array.size(); i++) {
    JSONObject object = (JSONObject) array.get(i);
    T t = (T) JSONObject.toBean(object, clazz);
    if (t != null)
     list.add(t);
   }
  }
  return list;
 }

 

 

 public static void JsonToXML() {
  JSONObject jsonObj = JSONObject.fromObject(jsonString);
  XMLSerializer xmlSerializer = new XMLSerializer();
  String xmlObject = xmlSerializer.write(jsonObj);
  try {
   Document document = DocumentHelper.parseText(xmlObject);
   XMLWriter writer = new XMLWriter(new FileWriter(
     "../json/src/demo2.xml"));
   writer.write(document);
   writer.close();
  } catch (DocumentException e) {
   e.printStackTrace();
  } catch (IOException e) {
   e.printStackTrace();
  }
  System.out.println(xmlObject);
 }

 

 

 public static void XMLToJson() {
  XMLSerializer xmlSerializer = new XMLSerializer();
  JSON json = xmlSerializer
    .readFromFile(new File("src\\Dom2jSample.xml"));
  System.out.println(json.toString());
 }

 

 

 public static void CreatXML() {
  Demo demo = new Demo();
  Document document = demo.createDocument();
  /**
   * way 1
   */
  try {
   demo.FileWrite(document);
  } catch (IOException e1) {
   e1.printStackTrace();
  }
  // Element legend = demo.FindElement(document);
  // System.out.println(legend.getText());
  /**
   * way 2
   */
  try {
   Document documentStr = demo.StringToXML("<China>I Love!</China>");
   demo.XMLWrite(documentStr);
  } catch (Exception e) {
  }

 }

 

 

 

 /*
  * Create a XML Document
  */
 public Document createDocument() {
  Document document = DocumentHelper.createDocument();

  Element root = document.addElement("root");

  Element author1 = root.addElement("Lynch");
  author1.addAttribute("Age", "25");
  author1.addAttribute("Country", "China");
  author1.addText("I am great!");

  Element author2 = root.addElement("Legend");
  author2.addAttribute("Age", "25");
  author2.addAttribute("Country", "China");
  author2.addText("I am great!too!");

  return document;
 }

 

 

 

 /*
  * Create a XML document through String
  */
 public Document StringToXML(String str) throws DocumentException {
  Document document = DocumentHelper.parseText(str);
  return document;
 }

 

 

 

 public Element FindElement(Document document) {
  Element root = document.getRootElement();
  Element legend = null;
  for (Iterator i = root.elementIterator("legend"); i.hasNext();) {
   legend = (Element) i.next();
  }
  return legend;
 }

 

 

 

 /*
  * Write a XML file
  */
 public void FileWrite(Document document) throws IOException {
  FileWriter out = new FileWriter("../json/src/demo.xml");
  document.write(out);
  out.close();
 }

 

 

 

 /*
  * Write a XML format file
  */
 public void XMLWrite(Document document) throws IOException {
  XMLWriter writer = new XMLWriter(
    new FileWriter("../json/src/demo2.xml"));
  writer.write(document);
  writer.close();
 }

 public static void main(String[] args) {
  // List<Demo> list = JsonToList(new Demo(), Demo.class);
  // for (Demo demo : list) {
  // System.out.println(demo.getFirstName());
  // }
  // XMLToJson();
  JsonToXML();
  CreatXML();
 }

}

  

分享到:
评论

相关推荐

    java对象转换为json字符串或字符串数组

    在Java开发中,将Java对象转换为JSON字符串或字符串数组是一项常见的任务,特别是在与前端交互、数据存储或者网络传输时。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也...

    将string类型xml字符串转为json字符串

    本篇文章将详细讲解如何将string类型的XML字符串转换为JSON字符串,并介绍相关的技术知识。 首先,理解XML和JSON的基本结构是至关重要的。XML是一种树形结构的标记语言,通过标签来定义元素和属性,例如: ```xml ...

    jackson 对象json字符串数组集合互转

    在标题“Jackson对象json字符串数组集合互转”中,提到的核心概念是Jackson如何处理JSON字符串与Java集合(如List、Array等)之间的转换。下面将详细解释这一过程以及涉及的相关知识点。 1. JSON与Java对象映射: ...

    解析Json字符串直接转换为对象(包括多层List集合 嵌套)所用jar包

    标题和描述提及的是将JSON字符串转换为Java对象,特别是涉及多层嵌套和List集合的情况。这在处理复杂数据结构时非常常见,比如服务器返回的响应可能包含嵌套的对象和数组。下面我们将详细介绍如何使用Jackson库来...

    JSON 字符串 与 java 对象的转换

    本文将详细介绍如何使用`json-lib`库来进行JSON字符串与Java对象之间的相互转换,并提供具体的代码示例。 #### 二、json-lib简介 `json-lib`是一个用于处理JSON的Java库,它可以将Java对象转换成JSON字符串,也...

    json字符串转换插件

    然后,你可以使用Gson提供的`Gson`类进行JSON字符串和Java对象之间的转换。例如,假设我们有以下Java对象: ```java public class User { private String name; private int age; private String city; // ...

    C#json与Xml相互转换例子

    要将JSON字符串转换为XML,我们需要先解析JSON,然后将解析后的对象序列化为XML。以下是一个简单的例子: ```csharp using System; using System.Text.Json; using System.Xml.Linq; public class Person { ...

    java实现Xml与json之间的相互转换操作示例

    同时,可以通过编写相应的工具类来实现xml与json的转换,例如上述示例中提到的XmlExercise工具类就提供了xml字符串和xmlDocument转换为json字符串的功能,以及json字符串转换成xml字符串的功能。 4. 实例讲解:在...

    json字符串转化为list泛型

    在Java编程中,我们经常需要将JSON格式的数据转换为Java对象,这通常涉及到将JSON字符串转化为List泛型。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和...

    xml文件转json

    xml转换为json的js库文件

    json_lib使用实例:java对象与json字符串的互转

    JSON(JavaScript Object...通过其提供的API,我们可以方便地进行JSON字符串与Java对象之间的双向转换,同时还能处理各种复杂的数据结构。在实际开发中,掌握这些知识对于进行Web服务开发、API接口设计等工作至关重要。

    js与jQuery实现获取table中的数据并拼成json字符串操作示例.docx

    js与jQuery实现获取table中的数据并拼成json字符串操作示例 本文主要介绍了使用JavaScript和jQuery实现从HTML表格中获取数据并将其拼成JSON字符串的操作示例。该示例涉及到JavaScript和jQuery对HTML页面表格数据的...

    XML、JAVA、JSON多种方式互相转换

    首先,我们需要解析XML到一个`org.w3c.dom.Document`对象,然后使用`readValue`方法将其转换为JSON字符串。 - 使用Java的Gson库:Gson库不直接支持XML到JSON的转换,但可以借助第三方库如`...

    Json字符串格式化工具

    这类工具可以帮助开发者将原始的、紧凑的JSON字符串转换成可读性更强的格式,通过增加缩进和换行来清晰地展示数据结构,便于理解和调试。 描述中提到的“Json字符串格式化工具”同样强调了这一点。在实际开发中,...

    C#使用tcp协议socket收发字符串文本数据,比如json字符串,xml字符串或者是纯文本数据

    该程序用C#编写,基于第三方类库实现TCP协议收发文本数据,比如Json,xml等字符串数据。SharpSocket底层采用Windows的IOCP模型,是最稳定和高效的Socket编程模型。SharpSocket代码经过精心优化, 有些直接在IL层编写,...

    Json字符串生成工具.zip

    例如,`JsonConvert.SerializeObject()`方法可以将C#对象转换为JSON字符串,而`JsonConvert.DeserializeObject()`则可以将JSON字符串转换回C#对象。 3. 源码分析 "Json字符串生成工具"很可能使用了Newtonsoft.Json...

    微信小程序-xml字符串转换json格式,适用于微信小程序

    xml字符串转换json格式 可用于微信小程序xml字符串转换json格式 安装 npm方式安装 npm install --save xmlstring2json bower方式安装 bower install xmlstring2json 用法示例: bookstore.xml文件 &lt;title&gt;...

    asp字符串转json对象类

    4. **处理嵌套结构**:如果JSON字符串包含嵌套的对象或数组,需要递归地调用转换函数来处理这些结构。 5. **错误处理**:在解析过程中,需要有适当的错误处理机制,以捕获并处理可能出现的语法错误或其他异常情况。...

    json字符串解析工具

    3. **转换**:它可以将JSON字符串转换为Java对象,这对于开发人员在Java应用中处理JSON数据非常有用。通过这个工具,开发者可以快速地将JSON数据映射到Java类的实例。 4. **操作**:可能支持对JSON对象进行操作,如...

    java中解析json字符串

    除了解析JSON字符串到Java对象,这两个库还支持将Java对象转换为JSON字符串,以及解析JSON到Map或List等数据结构。 3. **其他库** 除了Jackson和Gson,还有其他的JSON处理库,如org.json(提供简单的JSON工具类)...

Global site tag (gtag.js) - Google Analytics