首頁 後端開發 XML/RSS教程 JSON-lib框架,轉換JSON、XML不再困難

JSON-lib框架,轉換JSON、XML不再困難

Feb 18, 2017 pm 03:10 PM

Json-lib可以將Java物件轉成json格式的字串,也可以將Java物件轉換成xml格式的文檔,同樣可以將json字串轉換成Java物件或是將xml字串轉換成Java物件。

一、 準備工作 

 

1、http.最新的是2.4的版本,本範例使用的是v2.3;json-lib還需要以下相依性套件:

jakarta commons-lang 2.5

jakarta commons-beanutils 1.8.0s.com

jakarta commons-beanutils 1.8.0s.com 1

jakarta commons-logging 1.1.1

ezmorph 1.0.6

官方網址:http://www.php.cn/

然後在工程中加入以下你包:

可以用2.4的json-lib庫

你可以在這裡看看官方提供的範例:

http://www.php.cn/

由於本次介紹的範例需要junit工具,所以你還需要加入junit的jar文件,版本是4.8.2版本的,下載網址:http://www.php.cn/

JSON-lib框架,轉換JSON、XML不再困難如果你還不了解JSON是什麼?那你應該可以看看 http://www.php.cn/

2、 要轉換的JavaBean的程式碼如下:

package com.hoo.entity;
登入後複製
登入後複製
 <br>
登入後複製
登入後複製
登入後複製
登入後複製

public class Student {
登入後複製
    private int id;
登入後複製

    private String name;
登入後複製
    private String email;
登入後複製
    private String address;
登入後複製

    private Birthday birthday;
登入後複製

 <br>
登入後複製
登入後複製
登入後複製
登入後複製
    //setter、getter
登入後複製
登入後複製

    public String toString() {
登入後複製
        return this.name + "#" + this.id + "#" + this.address + "#" + this.birthday + "#" + this.email;
登入後複製
    }
登入後複製
登入後複製
Birthday.java
}
登入後複製
登入後複製
登入後複製
登入後複製
登入後複製
 <br>
登入後複製
登入後複製
登入後複製
登入後複製
package com.hoo.entity;
登入後複製
登入後複製
 <br>
登入後複製
登入後複製
登入後複製
登入後複製
public class Birthday {
登入後複製
    private String birthday;
登入後複製
    <br>
登入後複製
登入後複製
登入後複製
登入後複製
登入後複製
登入後複製
    public Birthday(String birthday) {
登入後複製
        super();
登入後複製

        this.birthday = birthday;
登入後複製
    }
登入後複製
登入後複製

    //setter、getter
登入後複製
登入後複製


注意,上面的getter、setter方法省略了,自己建構下。

3、新JsonlibTest測試類,基本程式碼如下:
    public Birthday() {}
登入後複製
    <br>
登入後複製
登入後複製
登入後複製
    @Override
登入後複製
    public String toString() {
登入後複製
        return this.birthday;
登入後複製
    }
登入後複製
}
登入後複製
登入後複製
package com.hoo.test;
登入後複製
 <br>
登入後複製
登入後複製
登入後複製
登入後複製
import java.lang.reflect.InvocationTargetException;
登入後複製
import java.util.ArrayList;
登入後複製

import java.util.Collection;
登入後複製
import java.util.Date;
登入後複製

import java.util.HashMap;
登入後複製
import java.util.Iterator;
登入後複製

import java.util.List;
登入後複製
import java.util.Map;
登入後複製

import java.util.Set;
登入後複製

import net.sf.json.JSON;
登入後複製
rr
import net.sf.json.JSONArray;
登入後複製

import net.sf.json.JSONFunction;
登入後複製
import net.sf.json.JSONObject;
登入後複製
import net.sf.json.JSONSerializer;
登入後複製
import net.sf.json.JsonConfig;
登入後複製
import net.sf.json.processors.JsonValueProcessor;
登入後複製
import net.sf.json.util.PropertyFilter;
登入後複製
import net.sf.json.xml.XMLSerializer;
登入後複製
import org.apache.commons.beanutils.PropertyUtils;
登入後複製
import org.junit.After;
登入後複製
import org.junit.Before;
登入後複製
import org.junit.Test;
登入後複製
import com.hoo.entity.Birthday;
登入後複製
import com.hoo.entity.Student;
登入後複製
 <br>
登入後複製
登入後複製
登入後複製
登入後複製
/**
登入後複製
登入後複製
 * <b>function:</b> 用json-lib转换java对象到JSON字符串
登入後複製
 * 读取json字符串到java对象,序列化jsonObject到xml
登入後複製
rr
 * json-lib-version: json-lib-2.3-jdk15.jar
登入後複製
 * 依赖包:
登入後複製
 * commons-beanutils.jar
登入後複製
 * commons-collections-3.2.jar
登入後複製
 * ezmorph-1.0.3.jar
登入後複製
 * commons-lang.jar
登入後複製
 * commons-logging.jar
登入後複製
 * @author hoojo
登入後複製
登入後複製
 * @createDate Nov 28, 2010 2:28:39 PM
登入後複製
 * @file JsonlibTest.java
登入後複製
 * @package com.hoo.test
登入後複製
 * @project WebHttpUtils
登入後複製
 * @blog http://www.php.cn/
登入後複製
 * @email hoojo_@126.com
登入後複製
 * @version 1.0
登入後複製
 */
登入後複製
登入後複製
@SuppressWarnings({ "deprecation", "unchecked" })
登入後複製
public class JsonlibTest {
登入後複製
rr
    private JSONArray jsonArray = null;
登入後複製
    private JSONObject jsonObject = null;
登入後複製

上面的init会在每个方法之前运行,destory会在每个方法完成后执行。分别用到了junit的@Before、@After注解,如果你对junit的这些注解不是很了解,可以看看junit官方的测试用例的example和doc;

JSONObject是将Java对象转换成一个json的Object形式,JSONArray是将一个Java对象转换成json的Array格式。

那什么是json的Object形式、Array形式?

用通俗易懂的方法将,所谓的json的Object形式就是一个花括号里面存放的如JavaMap的键值对,如:{name:’hoojo’, age: 24};

那么json的Array形式呢?

就是中括号,括起来的数组。如:[ ‘json’, true, 22];

如果你还想了解更多json方面的知识,请看:http://www.php.cn/

除了上面的JSONArray、JSONObject可以将Java对象转换成JSON或是相反,将JSON字符串转换成Java对象,还有一个对象也可以完成上面的功能,它就是JSONSerializer;下面我们就来看看它们是怎么玩转Java对象和JSON的。

二、 Java对象序列化成JSON对象

1、 将JavaObject转换吃JSON字符串

在JsonlibTest中添加如下代码:


/*=========================Java Object >>>> JSON String ===========================*/
登入後複製
/**
登入後複製
登入後複製
 * <b>function:</b>转Java Bean对象到JSON
登入後複製
 * @author hoojo
登入後複製
登入後複製
 * @createDate Nov 28, 2010 2:35:54 PM
登入後複製
 */
登入後複製
登入後複製
@Test
登入後複製
public void writeEntity2JSON() {
登入後複製
    fail("==============Java Bean >>> JSON Object==================");
登入後複製
    fail(JSONObject.fromObject(bean).toString());
登入後複製
    fail("==============Java Bean >>> JSON Array==================");
登入後複製
    fail(JSONArray.fromObject(bean).toString());//array会在最外层套上[]
登入後複製
    fail("==============Java Bean >>> JSON Object ==================");
登入後複製
    fail(JSONSerializer.toJSON(bean).toString());
登入後複製
    <br>
登入後複製
登入後複製
登入後複製
登入後複製
登入後複製
登入後複製
    fail("========================JsonConfig========================");
登入後複製
    JsonConfig jsonConfig = new JsonConfig();
登入後複製
登入後複製
    jsonConfig.registerJsonValueProcessor(Birthday.class, new JsonValueProcessor() {
登入後複製
        public Object processArrayValue(Object value, JsonConfig jsonConfig) {
登入後複製
            if (value == null) {
登入後複製
                return new Date();
登入後複製
            }
登入後複製
登入後複製
            return value;
登入後複製
        }
登入後複製
登入後複製
 <br>
登入後複製
登入後複製
登入後複製
登入後複製
        public Object processObjectValue(String key, Object value, JsonConfig jsonConfig) {
登入後複製
            fail("key:" + key);
登入後複製
            return value + "##修改过的日期";
登入後複製
        }
登入後複製
登入後複製
 <br>
登入後複製
登入後複製
登入後複製
登入後複製
    });
登入後複製
登入後複製
    jsonObject = JSONObject.fromObject(bean, jsonConfig);
登入後複製
    <br>
登入後複製
登入後複製
登入後複製
登入後複製
登入後複製
登入後複製
    fail(jsonObject.toString());
登入後複製
    Student student = (Student) JSONObject.toBean(jsonObject, Student.class);
登入後複製
    fail(jsonObject.getString("birthday"));
登入後複製
    fail(student.toString());
登入後複製
    <br>
登入後複製
登入後複製
登入後複製
    fail("#####################JsonPropertyFilter############################");
登入後複製
    jsonConfig.setJsonPropertyFilter(new PropertyFilter() {
登入後複製
        public boolean apply(Object source, String name, Object value) {
登入後複製
            fail(source + "%%%" + name + "--" + value);
登入後複製
            //忽略birthday属性
登入後複製
            if (value != null && Birthday.class.isAssignableFrom(value.getClass())) {
登入後複製
                return true;
登入後複製
            }
登入後複製
登入後複製
            return false;
登入後複製
        }
登入後複製
登入後複製
    });
登入後複製
登入後複製
    fail(JSONObject.fromObject(bean, jsonConfig).toString());
登入後複製
    fail("#################JavaPropertyFilter##################");
登入後複製
    jsonConfig.setRootClass(Student.class);
登入後複製
    jsonConfig.setJavaPropertyFilter(new PropertyFilter() {
登入後複製
        public boolean apply(Object source, String name, Object value) {
登入後複製
            fail(name + "@" + value + "#" + source);
登入後複製
            if ("id".equals(name) || "email".equals(name)) {
登入後複製
                value = name + "@@";
登入後複製
                return true;
登入後複製
            }
登入後複製
            return false;
登入後複製
        }
登入後複製
登入後複製
    });
登入後複製
    //jsonObject = JSONObject.fromObject(bean, jsonConfig);
登入後複製
    //student = (Student) JSONObject.toBean(jsonObject, Student.class);
登入後複製
    //fail(student.toString());
登入後複製
    student = (Student) JSONObject.toBean(jsonObject, jsonConfig);
登入後複製
    fail("Student:" + student.toString());
登入後複製
}
登入後複製
登入後複製
登入後複製
登入後複製
登入後複製

fromObject将Java对象转换成json字符串,toBean将json对象转换成Java对象;

上面方法值得注意的是使用了JsonConfig这个对象,这个对象可以在序列化的时候对JavaObject的数据进行处理、过滤等

上面的jsonConfig的registerJsonValueProcessor方法可以完成对象值的处理和修改,比如处理生日为null时,给一个特定的值。同样setJsonPropertyFilter和setJavaPropertyFilter都是完成对转换后的值的处理。

运行上面的代码可以在控制台看到如下结果:


==============Java Bean >>> JSON Object==================
登入後複製
{"address":"address","birthday":{"birthday":"2010-11-22"},"email":"email","id":1,"name":"haha"}
登入後複製
登入後複製
==============Java Bean >>> JSON Array==================
登入後複製
[{"address":"address","birthday":{"birthday":"2010-11-22"},"email":"email","id":1,"name":"haha"}]
登入後複製
==============Java Bean >>> JSON Object ==================
登入後複製
{"address":"address","birthday":{"birthday":"2010-11-22"},"email":"email","id":1,"name":"haha"}
登入後複製
登入後複製
========================JsonConfig========================
登入後複製
key:birthday
登入後複製
{"address":"address","birthday":"2010-11-22##修改过的日期","email":"email","id":1,"name":"haha"}
登入後複製
2010-11-22##修改过的日期
登入後複製
haha#1#address#null#email
登入後複製
#####################JsonPropertyFilter############################
登入後複製
haha#1#address#2010-11-22#email%%%address--address
登入後複製
haha#1#address#2010-11-22#email%%%birthday--2010-11-22
登入後複製
haha#1#address#2010-11-22#email%%%email--email
登入後複製
haha#1#address#2010-11-22#email%%%id--1
登入後複製
haha#1#address#2010-11-22#email%%%name--haha
登入後複製
{"address":"address","email":"email","id":1,"name":"haha"}
登入後複製
#################JavaPropertyFilter##################
登入後複製
address@address#null#0#null#null#null
登入後複製
birthday@2010-11-22##修改过的日期#null#0#address#null#null
登入後複製
email@email#null#0#address#null#null
登入後複製
id@1#null#0#address#null#null
登入後複製
name@haha#null#0#address#null#null
登入後複製
Student:haha#0#address#null#null
登入後複製

2、 将JavaList集合转换吃JSON字符串


/**
登入後複製
登入後複製
登入後複製
 * <b>function:</b>转换Java List集合到JSON
登入後複製
 * @author hoojo
登入後複製
登入後複製
登入後複製
登入後複製
 * @createDate Nov 28, 2010 2:36:15 PM
登入後複製
 */
登入後複製
登入後複製
登入後複製
登入後複製
@Test
登入後複製
登入後複製
登入後複製
登入後複製
public void writeList2JSON() {
登入後複製
    fail("==============Java List >>> JSON Array==================");
登入後複製
    List<student> stu = new ArrayList<student>();</student></student>
登入後複製
    stu.add(bean);
登入後複製
登入後複製
    bean.setName("jack");
登入後複製
登入後複製
    stu.add(bean);
登入後複製
登入後複製
    fail(JSONArray.fromObject(stu).toString());
登入後複製
    fail(JSONSerializer.toJSON(stu).toString());
登入後複製
}
登入後複製
登入後複製

运行此方法后,可以看到控制台输出:


==============Java List >>> JSON Array==================
登入後複製
[{"address":"address","birthday":{"birthday":"2010-11-22"},"email":"email","id":1,"name":"jack"},
登入後複製
登入後複製
{"address":"address","birthday":{"birthday":"2010-11-22"},"email":"email","id":1,"name":"jack"}]
登入後複製
登入後複製
[{"address":"address","birthday":{"birthday":"2010-11-22"},"email":"email","id":1,"name":"jack"},
登入後複製
登入後複製
{"address":"address","birthday":{"birthday":"2010-11-22"},"email":"email","id":1,"name":"jack"}]
登入後複製
登入後複製

如果你是转换List集合,一定得用JSONArray或是JSONSrializer提供的序列化方法。如果你用JSONObject.fromObject方法转换List会出现异常,通常使用JSONSrializer这个JSON序列化的方法,它会自动识别你传递的对象的类型,然后转换成相应的JSON字符串。

3、 将Map集合转换成JSON对象


/**
登入後複製
登入後複製
登入後複製
 * <b>function:</b>转Java Map对象到JSON
登入後複製
 * @author hoojo
登入後複製
登入後複製
登入後複製
登入後複製
 * @createDate Nov 28, 2010 2:37:35 PM
登入後複製
 */
登入後複製
登入後複製
登入後複製
登入後複製
@Test
登入後複製
登入後複製
登入後複製
登入後複製
public void writeMap2JSON() {
登入後複製
    Map<string> map = new HashMap<string>();</string></string>
登入後複製
    map.put("A", bean);
登入後複製
    <br>
登入後複製
登入後複製
登入後複製
    bean.setName("jack");
登入後複製
登入後複製
    map.put("B", bean);
登入後複製
    map.put("name", "json");
登入後複製
    map.put("bool", Boolean.TRUE);
登入後複製
    map.put("int", new Integer(1));
登入後複製
    map.put("arr", new String[] { "a", "b" });
登入後複製
    map.put("func", "function(i){ return this.arr[i]; }");
登入後複製
    fail("==============Java Map >>> JSON Object==================");
登入後複製
登入後複製
    fail(JSONObject.fromObject(map).toString());
登入後複製
    fail("==============Java Map >>> JSON Array ==================");
登入後複製
    fail(JSONArray.fromObject(map).toString());
登入後複製
    fail("==============Java Map >>> JSON Object==================");
登入後複製
登入後複製
    fail(JSONSerializer.toJSON(map).toString());
登入後複製
}
登入後複製
登入後複製
登入後複製
登入後複製
登入後複製

上面的Map集合有JavaBean、String、Boolean、Integer、以及Array和js的function函数的字符串。

运行上面的程序,结果如下:


==============Java Map >>> JSON Object==================
登入後複製
{"arr":["a","b"],"A":{"address":"address","birthday":{"birthday":"2010-11-22"},"email":"email","id":1,"name":"jack"},"int":1,
登入後複製
登入後複製
"B":{"address":"address","birthday":{"birthday":"2010-11-22"},"email":"email","id":1,"name":"jack"},"name":"json",
登入後複製
登入後複製
登入後複製
"func":function(i){ return this.arr[i]; },"bool":true}
登入後複製
登入後複製
==============Java Map >>> JSON Array ==================
登入後複製
[{"arr":["a","b"],"A":{"address":"address","birthday":{"birthday":"2010-11-22"},"email":"email","id":1,"name":"jack"},"int":1,
登入後複製
"B":{"address":"address","birthday":{"birthday":"2010-11-22"},"email":"email","id":1,"name":"jack"},"name":"json",
登入後複製
登入後複製
登入後複製
"func":function(i){ return this.arr[i]; },"bool":true}]
登入後複製
==============Java Map >>> JSON Object==================
登入後複製
{"arr":["a","b"],"A":{"address":"address","birthday":{"birthday":"2010-11-22"},"email":"email","id":1,"name":"jack"},"int":1,
登入後複製
登入後複製
"B":{"address":"address","birthday":{"birthday":"2010-11-22"},"email":"email","id":1,"name":"jack"},"name":"json",
登入後複製
登入後複製
登入後複製
"func":function(i){ return this.arr[i]; },"bool":true}
登入後複製
登入後複製

4、 将更多类型转换成JSON


/**
登入後複製
登入後複製
登入後複製
 * <b>function:</b>  转换更多数组类型到JSON
登入後複製
 * @author hoojo
登入後複製
登入後複製
登入後複製
登入後複製
 * @createDate Nov 28, 2010 2:39:19 PM
登入後複製
 */
登入後複製
登入後複製
登入後複製
登入後複製
@Test
登入後複製
登入後複製
登入後複製
登入後複製
public void writeObject2JSON() {
登入後複製
    String[] sa = {"a", "b", "c"};
登入後複製
    fail("==============Java StringArray >>> JSON Array ==================");
登入後複製
    fail(JSONArray.fromObject(sa).toString());
登入後複製
    fail(JSONSerializer.toJSON(sa).toString());
登入後複製
    fail("==============Java boolean Array >>> JSON Array ==================");
登入後複製
    boolean[] bo = { true, false, true };
登入後複製
    fail(JSONArray.fromObject(bo).toString());
登入後複製
    fail(JSONSerializer.toJSON(bo).toString());
登入後複製
    Object[] o = { 1, "a", true, 'A', sa, bo };
登入後複製
    fail("==============Java Object Array >>> JSON Array ==================");
登入後複製
    fail(JSONArray.fromObject(o).toString());
登入後複製
    fail(JSONSerializer.toJSON(o).toString());
登入後複製
    fail("==============Java String >>> JSON ==================");
登入後複製
    fail(JSONArray.fromObject("['json','is','easy']").toString());
登入後複製
    fail(JSONObject.fromObject("{'json':'is easy'}").toString());
登入後複製
    fail(JSONSerializer.toJSON("['json','is','easy']").toString());
登入後複製
    fail("==============Java JSONObject >>> JSON ==================");
登入後複製
    jsonObject = new JSONObject()
登入後複製
        .element("string", "JSON")
登入後複製
        .element("integer", "1")
登入後複製
        .element("double", "2.0")
登入後複製
        .element("boolean", "true");
登入後複製
    fail(JSONSerializer.toJSON(jsonObject).toString());
登入後複製
    <br>
登入後複製
登入後複製
登入後複製
登入後複製
登入後複製
登入後複製
    fail("==============Java JSONArray >>> JSON ==================");
登入後複製
    jsonArray = new JSONArray()
登入後複製
        .element( "JSON" )
登入後複製
        .element( "1" )
登入後複製
        .element( "2.0" )
登入後複製
        .element( "true" );
登入後複製
    fail(JSONSerializer.toJSON(jsonArray).toString());
登入後複製
    <br>
登入後複製
登入後複製
登入後複製
登入後複製
登入後複製
登入後複製
    fail("==============Java JSONArray JsonConfig#setArrayMode >>> JSON ==================");
登入後複製
    List input = new ArrayList();
登入後複製
    input.add("JSON");
登入後複製
    input.add("1");
登入後複製
    input.add("2.0");
登入後複製
    input.add("true");
登入後複製
    JSONArray jsonArray = (JSONArray) JSONSerializer.toJSON( input );
登入後複製
    JsonConfig jsonConfig = new JsonConfig();
登入後複製
登入後複製
    jsonConfig.setArrayMode( JsonConfig.MODE_OBJECT_ARRAY );
登入後複製
    Object[] output = (Object[]) JSONSerializer.toJava(jsonArray, jsonConfig);
登入後複製
    System.out.println(output[0]);
登入後複製
    <br>
登入後複製
登入後複製
登入後複製
登入後複製
登入後複製
登入後複製
    fail("==============Java JSONFunction >>> JSON ==================");
登入後複製
    String str = "{'func': function( param ){ doSomethingWithParam(param); }}";
登入後複製
    JSONObject jsonObject = (JSONObject) JSONSerializer.toJSON(str);
登入後複製
    JSONFunction func = (JSONFunction) jsonObject.get("func");
登入後複製
    fail(func.getParams()[0]);
登入後複製
    fail(func.getText() );
登入後複製
}
登入後複製
登入後複製
登入後複製
登入後複製
登入後複製

运行后结果如下:


==============Java StringArray >>> JSON Array ==================
登入後複製
["a","b","c"]
登入後複製
["a","b","c"]
登入後複製
==============Java boolean Array >>> JSON Array ==================
登入後複製
[true,false,true]
登入後複製
[true,false,true]
登入後複製
==============Java Object Array >>> JSON Array ==================
登入後複製
[1,"a",true,"A",["a","b","c"],[true,false,true]]
登入後複製
[1,"a",true,"A",["a","b","c"],[true,false,true]]
登入後複製
==============Java String >>> JSON ==================
登入後複製
["json","is","easy"]
登入後複製
登入後複製
{"json":"is easy"}
登入後複製
["json","is","easy"]
登入後複製
登入後複製
==============Java JSONObject >>> JSON ==================
登入後複製
{"string":"JSON","integer":"1","double":"2.0","boolean":"true"}
登入後複製
==============Java JSONArray >>> JSON ==================
登入後複製
["JSON","1","2.0","true"]
登入後複製
==============Java JSONArray JsonConfig#setArrayMode >>> JSON ==================
登入後複製
JSON
登入後複製
==============Java JSONFunction >>> JSON ==================
登入後複製
param
登入後複製
doSomethingWithParam(param);
登入後複製

这里还有一个JSONFunction的对象,可以转换JavaScript的function。可以获取方法参数和方法体。同时,还可以用JSONObject、JSONArray构建Java对象,完成Java对象到JSON字符串的转换。

三、 JSON对象反序列化成Java对象

1、 将json字符串转成Java对象


private String json = "{\"address\":\"chian\",\"birthday\":{\"birthday\":\"2010-11-22\"}," +
登入後複製
        "\"email\":\"email@123.com\",\"id\":22,\"name\":\"tom\"}";
登入後複製
/**
登入後複製
 * <b>function:</b>将json字符串转化为java对象
登入後複製
 * @author hoojo
登入後複製
登入後複製
登入後複製
登入後複製
 * @createDate Nov 28, 2010 3:01:16 PM
登入後複製
 */
登入後複製
登入後複製
登入後複製
登入後複製
@Test
登入後複製
登入後複製
登入後複製
登入後複製
public void readJSON2Bean() {
登入後複製
    fail("==============JSON Object String >>> Java Bean ==================");
登入後複製
    jsonObject = JSONObject.fromObject(json);
登入後複製
    Student stu = (Student) JSONObject.toBean(jsonObject, Student.class);
登入後複製
    fail(stu.toString());
登入後複製
}
登入後複製
登入後複製
登入後複製
登入後複製
登入後複製

运行后,结果如下:


==============JSON Object String >>> Java Bean ==================
登入後複製
tom#22#chian#2010-11-22#email@123.com
登入後複製
登入後複製
登入後複製
登入後複製

2、 将json字符串转换成动态Java对象(MorphDynaBean)


private String json = "{\"address\":\"chian\",\"birthday\":{\"birthday\":\"2010-11-22\"},"+
登入後複製
登入後複製
登入後複製
登入後複製
        "\"email\":\"email@123.com\",\"id\":22,\"name\":\"tom\"}";
登入後複製
登入後複製
登入後複製
登入後複製
 <br/>
登入後複製
登入後複製
登入後複製
登入後複製
@Test
登入後複製
登入後複製
登入後複製
登入後複製
登入後複製
public void readJSON2DynaBean() {
登入後複製
    try {
登入後複製
登入後複製
登入後複製
登入後複製
        fail("==============JSON Object String >>> Java MorphDynaBean ==================");
登入後複製
        JSON jo = JSONSerializer.toJSON(json);
登入後複製
        Object o = JSONSerializer.toJava(jo);//MorphDynaBean
登入後複製
        fail(PropertyUtils.getProperty(o, "address").toString());
登入後複製
        jsonObject = JSONObject.fromObject(json);
登入後複製
登入後複製
        fail(jsonObject.getString("email"));
登入後複製
        o = JSONSerializer.toJava(jsonObject);//MorphDynaBean
登入後複製
        fail(PropertyUtils.getProperty(o, "name").toString());
登入後複製
    } catch (IllegalAccessException e) {
登入後複製
        e.printStackTrace();
登入後複製
登入後複製
登入後複製
登入後複製
登入後複製
登入後複製
    } catch (InvocationTargetException e) {
登入後複製
        e.printStackTrace();
登入後複製
登入後複製
登入後複製
登入後複製
登入後複製
登入後複製
    } catch (NoSuchMethodException e) {
登入後複製
        e.printStackTrace();
登入後複製
登入後複製
登入後複製
登入後複製
登入後複製
登入後複製
    }
登入後複製
登入後複製
登入後複製
登入後複製
}
登入後複製
登入後複製
登入後複製
登入後複製
登入後複製

转换后的对象Object是一个MorphDynaBean的动态JavaBean,通过PropertyUtils可以获得指定的属性的值。

运行后结果如下:


==============JSON Object String >>> Java MorphDynaBean =============
登入後複製
chian
登入後複製
email@123.com
登入後複製
tom
登入後複製

3、 将json字符串转成Java的Array数组


private String json = "{\"address\":\"chian\",\"birthday\":{\"birthday\":\"2010-11-22\"},"+
登入後複製
登入後複製
登入後複製
登入後複製
        "\"email\":\"email@123.com\",\"id\":22,\"name\":\"tom\"}";
登入後複製
登入後複製
登入後複製
登入後複製
 <br/>
登入後複製
登入後複製
登入後複製
登入後複製
@Test
登入後複製
登入後複製
登入後複製
登入後複製
登入後複製
public void readJSON2Array() {
登入後複製
    try {
登入後複製
登入後複製
登入後複製
登入後複製
        fail("==============JSON Arry String >>> Java Array ==================");
登入後複製
        json = "[" + json + "]";
登入後複製
登入後複製
登入後複製
        jsonArray = JSONArray.fromObject(json);
登入後複製
登入後複製
登入後複製
        fail("#%%%" + jsonArray.get(0).toString());
登入後複製
        Object[] os = jsonArray.toArray();
登入後複製
        System.out.println(os.length);
登入後複製
        <br/>
登入後複製
登入後複製
登入後複製
        fail(JSONArray.fromObject(json).join(""));
登入後複製
        fail(os[0].toString());
登入後複製
        Student[] stus = (Student[]) JSONArray.toArray(jsonArray, Student.class);
登入後複製
        System.out.println(stus.length);
登入後複製
        System.out.println(stus[0]);
登入後複製
    } catch (Exception e) {
登入後複製
登入後複製
登入後複製
        e.printStackTrace();
登入後複製
登入後複製
登入後複製
登入後複製
登入後複製
登入後複製
    }
登入後複製
登入後複製
登入後複製
登入後複製
}
登入後複製
登入後複製
登入後複製
登入後複製
登入後複製

运行的结果如下:


==============JSON Arry String >>> Java Array ==================
登入後複製
#%%%{"address":"chian","birthday":{"birthday":"2010-11-22"},"email":"email@123.com","id":22,"name":"tom"}
登入後複製
1
登入後複製
登入後複製
登入後複製
登入後複製
登入後複製
登入後複製
{"address":"chian","birthday":{"birthday":"2010-11-22"},"email":"email@123.com","id":22,"name":"tom"}
登入後複製
登入後複製
{"address":"chian","birthday":{"birthday":"2010-11-22"},"email":"email@123.com","id":22,"name":"tom"}
登入後複製
登入後複製
1
登入後複製
登入後複製
登入後複製
登入後複製
登入後複製
登入後複製
tom#22#chian#2010-11-22#email@123.com
登入後複製
登入後複製
登入後複製
登入後複製

4、 将JSON字符串转成Java的List集合


private String json = "{\"address\":\"chian\",\"birthday\":{\"birthday\":\"2010-11-22\"},"+
登入後複製
登入後複製
登入後複製
登入後複製
        "\"email\":\"email@123.com\",\"id\":22,\"name\":\"tom\"}";
登入後複製
登入後複製
登入後複製
登入後複製
 <br/>
登入後複製
登入後複製
登入後複製
登入後複製
@Test
登入後複製
登入後複製
登入後複製
登入後複製
登入後複製
public void readJSON2List() {
登入後複製
    try {
登入後複製
登入後複製
登入後複製
登入後複製
        fail("==============JSON Arry String >>> Java List ==================");
登入後複製
        json = "[" + json + "]";
登入後複製
登入後複製
登入後複製
        jsonArray = JSONArray.fromObject(json);
登入後複製
登入後複製
登入後複製
        List<Student> list = JSONArray.toList(jsonArray, Student.class);
登入後複製
        System.out.println(list.size());
登入後複製
登入後複製
        System.out.println(list.get(0));
登入後複製
        <br/>
登入後複製
登入後複製
登入後複製
        list = JSONArray.toList(jsonArray);
登入後複製
        System.out.println(list.size());
登入後複製
登入後複製
        System.out.println(list.get(0));//MorphDynaBean
登入後複製
    } catch (Exception e) {
登入後複製
登入後複製
登入後複製
        e.printStackTrace();
登入後複製
登入後複製
登入後複製
登入後複製
登入後複製
登入後複製
    }
登入後複製
登入後複製
登入後複製
登入後複製
}
登入後複製
登入後複製
登入後複製
登入後複製
登入後複製

运行后结果如下:


==============JSON Arry String >>> Java List ==================
登入後複製
1
登入後複製
登入後複製
登入後複製
登入後複製
登入後複製
登入後複製
tom#22#chian#2010-11-22#email@123.com
登入後複製
登入後複製
登入後複製
登入後複製
1
登入後複製
登入後複製
登入後複製
登入後複製
登入後複製
登入後複製
net.sf.ezmorph.bean.MorphDynaBean@141b571[
登入後複製
  {id=22, birthday=net.sf.ezmorph.bean.MorphDynaBean@b23210[
登入後複製
  {birthday=2010-11-22}
登入後複製
], address=chian, email=email@123.com, name=tom}
登入後複製
]
登入後複製

5、 将json字符串转换成Collection接口


private String json = "{\"address\":\"chian\",\"birthday\":{\"birthday\":\"2010-11-22\"},"+
登入後複製
登入後複製
登入後複製
登入後複製
        "\"email\":\"email@123.com\",\"id\":22,\"name\":\"tom\"}";
登入後複製
登入後複製
登入後複製
登入後複製
 <br/>
登入後複製
登入後複製
登入後複製
登入後複製
@Test
登入後複製
登入後複製
登入後複製
登入後複製
登入後複製
public void readJSON2Collection() {
登入後複製
    try {
登入後複製
登入後複製
登入後複製
登入後複製
        fail("==============JSON Arry String >>> Java Collection ==================");
登入後複製
        json = "[" + json + "]";
登入後複製
登入後複製
登入後複製
        jsonArray = JSONArray.fromObject(json);
登入後複製
登入後複製
登入後複製
        Collection<Student> con = JSONArray.toCollection(jsonArray, Student.class);
登入後複製
        System.out.println(con.size());
登入後複製
        Object[] stt = con.toArray();
登入後複製
        System.out.println(stt.length);
登入後複製
        fail(stt[0].toString());
登入後複製
        <br/>
登入後複製
登入後複製
登入後複製
    } catch (Exception e) {
登入後複製
        e.printStackTrace();
登入後複製
    }
登入後複製
}
登入後複製
登入後複製
登入後複製

刚才上面的将json转换成list提示该方法过时,这里有toCollection,可以用此方法代替toList方法;运行后结果如下:


==============JSON Arry String >>> Java Collection ==================
登入後複製
1
登入後複製
登入後複製
登入後複製
登入後複製
登入後複製
登入後複製
1
登入後複製
登入後複製
登入後複製
登入後複製
登入後複製
登入後複製
tom#22#chian#2010-11-22#email@123.com
登入後複製
登入後複製
登入後複製
登入後複製

6、 将json字符串转换成Map集合


@Test
登入後複製
登入後複製
public void readJSON2Map() {
登入後複製
    try {
登入後複製
        fail("==============JSON Arry String >>> Java Map ==================");
登入後複製
        json = "{\"arr\":[\"a\",\"b\"],\"A\":{\"address\":\"address\",\"birthday\":{\"birthday\":\"2010-11-22\"},"+
登入後複製
        "\"email\":\"email\",\"id\":1,\"name\":\"jack\"},\"int\":1,"+
登入後複製
        "\"B\":{\"address\":\"address\",\"birthday\":{\"birthday\":\"2010-11-22\"},"+
登入後複製
        "\"email\":\"email\",\"id\":1,\"name\":\"jack\"},\"name\":\"json\",\"bool\":true}";
登入後複製
        jsonObject = JSONObject.fromObject(json);
登入後複製
登入後複製
        Map<String, Class<?>> clazzMap = new HashMap<String, Class<?>>();
登入後複製
        clazzMap.put("arr", String[].class);
登入後複製
        clazzMap.put("A", Student.class);
登入後複製
        clazzMap.put("B", Student.class);
登入後複製
        Map<String, ?> mapBean = (Map) JSONObject.toBean(jsonObject, Map.class, clazzMap);
登入後複製
        System.out.println(mapBean);
登入後複製
        <br/>
登入後複製
        Set<String> set = mapBean.keySet();
登入後複製
        Iterator<String> iter = set.iterator();
登入後複製
        while (iter.hasNext()) {
登入後複製
            String key = iter.next();
登入後複製
            fail(key + ":" + mapBean.get(key).toString());
登入後複製
        }
登入後複製
    } catch (Exception e) {
登入後複製
登入後複製
登入後複製
        e.printStackTrace();
登入後複製
登入後複製
登入後複製
登入後複製
登入後複製
登入後複製
    }
登入後複製
登入後複製
登入後複製
登入後複製
}
登入後複製
登入後複製
登入後複製
登入後複製
登入後複製

运行后结果如下:


==============JSON Arry String >>> Java Map ==================
登入後複製
{A=jack#1#address#2010-11-22#email, arr=[a, b], B=jack#1#address#2010-11-22#email, int=1, name=json, bool=true}
登入後複製
A:jack#1#address#2010-11-22#email
登入後複製
arr:[a, b]
登入後複製
B:jack#1#address#2010-11-22#email
登入後複製
int:1
登入後複製
name:json
登入後複製
bool:true
登入後複製

四、 JSON-libXML的支持

1、 将Java对象到XML


/*============================Java Object >>>>> XML ==========================*/
登入後複製
/**
登入後複製
登入後複製
 * <b>function:</b> 转换Java对象到XML
登入後複製
 * 需要额外的jar包:xom.jar
登入後複製
 * @author hoojo
登入後複製
 * @createDate Nov 28, 2010 2:39:55 PM
登入後複製
 */
登入後複製
@Test
登入後複製
登入後複製
登入後複製
登入後複製
登入後複製
public void writeObject2XML() {
登入後複製
    XMLSerializer xmlSerializer = new XMLSerializer();
登入後複製
    fail("==============Java String Array >>> XML ==================");
登入後複製
登入後複製
    //xmlSerializer.setElementName("bean");
登入後複製
    fail(xmlSerializer.write(JSONArray.fromObject(bean)));
登入後複製
    String[] sa = {"a", "b", "c"};
登入後複製
    fail("==============Java String Array >>> XML ==================");
登入後複製
登入後複製
    fail(xmlSerializer.write(JSONArray.fromObject(sa)));
登入後複製
    fail("==============Java boolean Array >>> XML ==================");
登入後複製
    boolean[] bo = { true, false, true };
登入後複製
    fail(xmlSerializer.write(JSONArray.fromObject(bo)));
登入後複製
    fail(xmlSerializer.write(JSONSerializer.toJSON(bo)));
登入後複製
    Object[] o = { 1, "a", true, &#39;A&#39;, sa, bo };
登入後複製
登入後複製
    fail("==============Java Object Array >>> JSON Array ==================");
登入後複製
登入後複製
    fail(xmlSerializer.write(JSONArray.fromObject(o)));
登入後複製
    fail(xmlSerializer.write(JSONSerializer.toJSON(o)));
登入後複製
    fail("==============Java String >>> JSON ==================");
登入後複製
登入後複製
    fail(xmlSerializer.write(JSONArray.fromObject("[&#39;json&#39;,&#39;is&#39;,&#39;easy&#39;]")).toString());
登入後複製
    fail(xmlSerializer.write(JSONObject.fromObject("{&#39;json&#39;:&#39;is easy&#39;}")).toString());
登入後複製
    fail(xmlSerializer.write(JSONSerializer.toJSON("[&#39;json&#39;,&#39;is&#39;,&#39;easy&#39;]")).toString());
登入後複製
}
登入後複製
登入後複製
登入後複製

主要运用的是XMLSerializer的write方法,这个方法可以完成java对象到xml的转换,不过你很容易就可以看到这个xml序列化对象,需要先将java对象转成json对象,然后再将json转换吃xml文档。

运行后结果如下:

==============Java String Array >>> XML ==================
<?xml version="1.0" encoding="UTF-8"?>
<a><e class="object">
<address type="string">address</address><birthday class="object"><birthday type="string">2010-11-22</birthday></birthday>
<email type="string">email</email><id type="number">1</id><name type="string">haha</name>
</e></a>
 
==============Java String Array >>> XML ==================
<?xml version="1.0" encoding="UTF-8"?>
<a><e type="string">a</e><e type="string">b</e><e type="string">c</e></a>
 
==============Java boolean Array >>> XML ==================
<?xml version="1.0" encoding="UTF-8"?>
<a><e type="boolean">true</e><e type="boolean">false</e><e type="boolean">true</e></a>
 
<?xml version="1.0" encoding="UTF-8"?>
<a><e type="boolean">true</e><e type="boolean">false</e><e type="boolean">true</e></a>
 
==============Java Object Array >>> JSON Array ==================
<?xml version="1.0" encoding="UTF-8"?>
<a><e type="number">1</e><e type="string">a</e><e type="boolean">true</e><e type="string">A</e><e class="array">
<e type="string">a</e><e type="string">b</e><e type="string">c</e></e><e class="array"><e type="boolean">true</e>
<e type="boolean">false</e><e type="boolean">true</e></e></a>
 
<?xml version="1.0" encoding="UTF-8"?>
<a><e type="number">1</e><e type="string">a</e><e type="boolean">true</e><e type="string">A</e><e class="array">
<e type="string">a</e><e type="string">b</e><e type="string">c</e></e><e class="array"><e type="boolean">true</e>
<e type="boolean">false</e><e type="boolean">true</e></e></a>
 
==============Java String >>> JSON ==================
<?xml version="1.0" encoding="UTF-8"?>
<a><e type="string">json</e><e type="string">is</e><e type="string">easy</e></a>
 
<?xml version="1.0" encoding="UTF-8"?>
<o><json type="string">is easy</json></o>
 
<?xml version="1.0" encoding="UTF-8"?>
<a><e type="string">json</e><e type="string">is</e><e type="string">easy</e></a>
登入後複製

上面的节点名称有点乱,你可以通过setElementName设置节点名称

2、 将XML转换成Java对象


/*============================XML String >>>>> Java Object ==========================*/
登入後複製
/**
登入後複製
登入後複製
 * <b>function:</b>转换xml文档到java对象
登入後複製
 * @author hoojo
登入後複製
 * @createDate Nov 28, 2010 3:00:27 PM
登入後複製
 */
登入後複製
@Test
登入後複製
public void readXML2Object() {
登入後複製
    XMLSerializer xmlSerializer = new XMLSerializer();
登入後複製
    fail("============== XML >>>> Java String Array ==================");
登入後複製
    String[] sa = {"a", "b", "c"};
登入後複製
    jsonArray = (JSONArray) xmlSerializer.read(xmlSerializer.write(JSONArray.fromObject(sa)));
登入後複製
    fail(jsonArray.toString());
登入後複製
    <br/>
登入後複製
登入後複製
登入後複製
    String[] s = (String[]) JSONArray.toArray(jsonArray, String.class);
登入後複製
    fail(s[0].toString());
登入後複製
登入後複製
    <br/>
登入後複製
登入後複製
    fail("============== XML >>>> Java boolean Array ==================");
登入後複製
    boolean[] bo = { true, false, true };
登入後複製
    jsonArray = (JSONArray) xmlSerializer.read(xmlSerializer.write(JSONArray.fromObject(bo)));
登入後複製
    bo = (boolean[]) JSONArray.toArray(jsonArray, boolean.class);
登入後複製
    fail(bo.toString());
登入後複製
    System.out.println(bo[0]);
登入後複製
    <br/>
登入後複製
登入後複製
登入後複製
    jsonArray = (JSONArray) xmlSerializer.read(xmlSerializer.write(JSONSerializer.toJSON(bo)));
登入後複製
    bo = (boolean[]) JSONArray.toArray(jsonArray, boolean.class);
登入後複製
    fail(bo.toString());
登入後複製
    System.out.println(bo[0]);
登入後複製
    <br/>
登入後複製
登入後複製
    fail("==============Java Object Array >>> JSON Array ==================");
登入後複製
登入後複製
    Object[] o = { 1, "a", true, &#39;A&#39;, sa, bo };
登入後複製
登入後複製
    jsonArray = (JSONArray) xmlSerializer.read(xmlSerializer.write(JSONArray.fromObject(o)));
登入後複製
    System.out.println(jsonArray.getInt(0));
登入後複製
    System.out.println(jsonArray.get(1));
登入後複製
    System.out.println(jsonArray.getBoolean(2));
登入後複製
    jsonArray = (JSONArray) xmlSerializer.read(xmlSerializer.write(JSONSerializer.toJSON(o)));
登入後複製
    System.out.println(jsonArray.get(4));
登入後複製
    System.out.println(jsonArray.getJSONArray(5).get(0));
登入後複製
    System.out.println(jsonArray.get(5));
登入後複製
    <br/>
登入後複製
登入後複製
登入後複製
    fail("==============Java String >>> JSON ==================");
登入後複製
登入後複製
    jsonArray = (JSONArray) xmlSerializer.read(xmlSerializer.write(JSONArray.fromObject("[&#39;json&#39;,&#39;is&#39;,&#39;easy&#39;]")).toString());
登入後複製
    s = (String[]) JSONArray.toArray(jsonArray, String.class);
登入後複製
登入後複製
    fail(s[0].toString());
登入後複製
登入後複製
    jsonObject = (JSONObject) xmlSerializer.read(xmlSerializer.write(JSONObject.fromObject("{&#39;json&#39;:&#39;is easy&#39;}")).toString());
登入後複製
    Object obj = JSONObject.toBean(jsonObject);
登入後複製
    System.out.println(obj);
登入後複製
    jsonArray = (JSONArray) xmlSerializer.read(xmlSerializer.write(JSONSerializer.toJSON("[&#39;json&#39;,&#39;is&#39;,&#39;easy&#39;]")).toString());
登入後複製
    s = (String[]) JSONArray.toArray(jsonArray, String.class);
登入後複製
登入後複製
    fail(s[1].toString());
登入後複製
}
登入後複製
登入後複製
登入後複製

主要运用到XMLSerializer的read方法,将xml内容读取后,转换成Java对象。运行后结果如下:


============== XML >>>> Java String Array ==================
登入後複製
["a","b","c"]
登入後複製
a
登入後複製
登入後複製
============== XML >>>> Java boolean Array ==================
登入後複製
[Z@15856a5
登入後複製
true
登入後複製
登入後複製
登入後複製
登入後複製
[Z@79ed7f
登入後複製
true
登入後複製
登入後複製
登入後複製
登入後複製
==============Java Object Array >>> JSON Array ==================
登入後複製
1
登入後複製
a
登入後複製
登入後複製
true
登入後複製
登入後複製
登入後複製
登入後複製
["a","b","c"]
登入後複製
true
登入後複製
登入後複製
登入後複製
登入後複製
["true","false","true"]
登入後複製
==============Java String >>> JSON ==================
登入後複製
json
登入後複製
net.sf.ezmorph.bean.MorphDynaBean@c09554[
登入後複製
  {json=is easy}
登入後複製
]
登入後複製
is
登入後複製

3、 将xml的字符串内容,转换成Java的Array对象


@Test
登入後複製
登入後複製
public void testReadXml2Array() {
登入後複製
    String str = "<a class=\"array\">" +
登入後複製
          "<e type=\"function\" params=\"i,j\">" +
登入後複製
          "return matrix[i][j];" +
登入後複製
          "</e>" +
登入後複製
        "</a>";
登入後複製
    JSONArray json = (JSONArray) new XMLSerializer().read(str);
登入後複製
    fail(json.toString());
登入後複製
}
登入後複製
登入後複製
登入後複製
登入後複製
登入後複製

上面是一段xml字符串格式的文档,将其转换为JSONArray对象。转换后结果如下:


[function(i,j){ return matrix[i][j]; }]
登入後複製

就是一个数组;

 以上就是JSON-lib框架,转换JSON、XML不再困难的内容,更多相关内容请关注PHP中文网(www.php.cn)!


本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

手機XML轉PDF,轉換速度快嗎? 手機XML轉PDF,轉換速度快嗎? Apr 02, 2025 pm 10:09 PM

手機XML轉PDF的速度取決於以下因素:XML結構的複雜性手機硬件配置轉換方法(庫、算法)代碼質量優化手段(選擇高效庫、優化算法、緩存數據、利用多線程)總體而言,沒有絕對的答案,需要根據具體情況進行優化。

怎麼在手機上把XML文件轉換為PDF? 怎麼在手機上把XML文件轉換為PDF? Apr 02, 2025 pm 10:12 PM

不可能直接在手機上用單一應用完成 XML 到 PDF 的轉換。需要使用雲端服務,通過兩步走的方式實現:1. 在雲端轉換 XML 為 PDF,2. 在手機端訪問或下載轉換後的 PDF 文件。

手機上如何將XML轉換成PDF? 手機上如何將XML轉換成PDF? Apr 02, 2025 pm 10:18 PM

直接在手機上將XML轉換為PDF並不容易,但可以藉助雲端服務實現。推薦使用輕量級手機App上傳XML文件並接收生成的PDF,配合雲端API進行轉換。雲端API使用無服務器計算服務,選擇合適的平台至關重要。處理XML解析和PDF生成時需要考慮複雜性、錯誤處理、安全性和優化策略。整個過程需要前端App與後端API協同工作,需要對多種技術有所了解。

xml格式化工具推薦 xml格式化工具推薦 Apr 02, 2025 pm 09:03 PM

XML格式化工具可以將代碼按照規則排版,提高可讀性和理解性。選擇工具時,要注意自定義能力、對特殊情況的處理、性能和易用性。常用的工具類型包括在線工具、IDE插件和命令行工具。

xml怎麼轉換成圖片 xml怎麼轉換成圖片 Apr 03, 2025 am 07:39 AM

可以將 XML 轉換為圖像,方法是使用 XSLT 轉換器或圖像庫。 XSLT 轉換器:使用 XSLT 處理器和样式表,將 XML 轉換為圖像。圖像庫:使用 PIL 或 ImageMagick 等庫,從 XML 數據創建圖像,例如繪製形狀和文本。

xml如何轉化為word xml如何轉化為word Apr 03, 2025 am 08:15 AM

有三種將 XML 轉換為 Word 的方法:使用 Microsoft Word、使用 XML 轉換器或使用編程語言。

web.xml怎麼打開 web.xml怎麼打開 Apr 03, 2025 am 06:51 AM

要打開 web.xml 文件,可以使用以下方法:使用文本編輯器(如記事本或 TextEdit)使用集成開發環境(如 Eclipse 或 NetBeans)使用命令行編輯命令(Windows:notepad web.xml;Mac/Linux:open -a TextEdit web.xml)

有什麼手機APP可以將XML轉換成PDF? 有什麼手機APP可以將XML轉換成PDF? Apr 02, 2025 pm 08:54 PM

無法找到一款將 XML 直接轉換為 PDF 的應用程序,因為它們是兩種根本不同的格式。 XML 用於存儲數據,而 PDF 用於顯示文檔。要完成轉換,可以使用編程語言和庫,例如 Python 和 ReportLab,來解析 XML 數據並生成 PDF 文檔。

See all articles