gpt4 book ai didi

java - 在 JAXB 中将 JSON 对象转换为字符串

转载 作者:太空宇宙 更新时间:2023-11-04 06:18:40 24 4
gpt4 key购买 nike

正在编写一个 Web 服务端点,它将生成 JSON 和 XML 响应。这里我想将一个对象转换为 JSON 并将其设置为字符串。当我尝试使用下面的代码时

网络服务端点

package com.test1;

import java.util.ArrayList;
import java.util.List;
import javax.ws.rs.Consumes;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;`


@Path("v1")
public class Impl1 {
@POST
@Path("method")
@Produces({"text/xml","application/json"})
public XML method() throws JSONException
{
//JSONObject obj = new JSONObject();
JSONArray ary = new JSONArray();
Main main = new Main();`

List<Student> details = new ArrayList<Student>() ;
Student s1 = new Student();
Student s2 = new Student();
Student s3 = new Student();
s1.setId("ID1");
s1.setValue("1");
s2.setId("ID2");
s2.setValue("2");
s3.setId("ID3");
s3.setValue("3");
details.add(s1);
details.add(s2);
details.add(s3);

main.setDetails(details);
ary.put(details);

Employee emp = new Employee();
emp.setName("Mike");
emp.setSalary(1000);

XML xml = new XML();

xml.setDetails(ary.toString());
xml.setEmp(emp);
xml.setId("1");

return xml;
}
}


XML class (JAXB)

package com.test1;

import java.util.HashMap;
import java.util.Map;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;

@XmlRootElement
public class XML {

String id;
Employee emp;
String details;

public String getId() {
return id;
}

public void setId(String id) {
this.id = id;
}

public Employee getEmp() {
return emp;
}

public void setEmp(Employee emp) {
this.emp = emp;
}

public String getDetails() {
return details;
}

public void setDetails(String details) {
this.details = details;
}
}

Student Class
package com.test1;

public class Student {

String id;
String Value;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getValue() {
return Value;
}
public void setValue(String value) {
Value = value;

Main Class
package com.test1;

import java.util.List;

public class Main {



List<Student> details;

public List<Student> getDetails() {
return details;
}

public void setDetails(List<Student> details) {
this.details = details;
}


}

所以当我点击我的服务时得到的响应为

            {
"details" : "[[{\"id\":\"ID1\",\"value\":\"1\"},{\"id\":\"ID2\",\"value\":\"2\"},{\"id\":\"ID3\",\"value\":\"3\"}]]",
"emp" : {
"name" : "Arun",
"salary" : "1000.0"
},
"id" : "1"
}

预期字符串值为

    [{"id":"ID1","value":"1"},{"id":"ID2","value":"2"},{"id":"ID3","value":"3"}]

我的问题是为什么转换为字符串的 JSONArray 在每个键值对上都包含“\”。有什么办法可以克服这个问题吗?

最佳答案

使用 Jackson 或 google-gson 或任何其他库。例如 http://howtodoinjava.com/2014/06/16/jackson-examples-convert-java-object-to-from-json/

关于java - 在 JAXB 中将 JSON 对象转换为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27739823/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com