我的服务以JSONArray的形式收到响应。我想将这个JSONArray转换为JavaObject(使用POJO类)。我使用Jackson API进行JSON到JavaObject的转换。我还为该转换编写了帮助类(类名:JsonUtil)。
请在下面找到我的 JSON 响应,其中包含 JSON 对象以及 JSON 数组。
[
{
"order_number":"1000123",
"customer_name":"Johnson Controls - ISC"
"order_items":[
{
"line_number":"1",
"product_code":"YMPA0100|Base",
"product_description":"YMPA0100",
"line_id":"c435d1bf-f9d4-47e6-b867-cda612429a6f",
"product_quantity":1
},
{
"line_number":"1",
"product_code":"YMPA0100|Base",
"product_description":"YMPA0100",
"line_id":"c435d1bf-f9d4-47e6-b867-cda612429a6f",
"product_quantity":2
},
{
"line_number":"1",
"product_code":"YMPA0100|Base",
"product_description":"YMPA0100",
"line_id":"c435d1bf-f9d4-47e6-b867-cda612429a6f",
"product_quantity":2
}
],
}
]
由此,如果未显示order_items
数组,则可以进行转换。如果出现order_items
数组,则表示它抛出以下错误。
错误:将JSON转换为Java Objects时发生异常,无法反序列化Java.util的实例。ArrayList在[Source:java.io.StringReader@3444d69d; 行:1,列:352](通过引用链:com.util.OrderHeader[“order_items”])
请在下面找到我的客户代码:
public class Demo {
public static <Order> void main(String[] args) {
Client client = Client.getInstance();
client.start();
String findOrderString =
client.findOrder("","1000123",").toString();
String result = findOrderString.replaceAll("[\\[\\] ]","");
System.out.println("JsonString:::"+result);
OrderHeader so=JsonUtil.convertJsonToJava(result,
OrderHeader.class);
System.out.println("==>"+so.getCustomer_name()+",
"+so.getOrder_number());
}
OrderHeader
POJO类:
public class OrderHeader {
String order_number;
String customer_name;
List<OrderItem> order_items;
//Setters & Getters method
}
OrderItem
POJO类:(它应该是OrderHeader
POJO类别中的JSONArray)
public class OrderItem {
String line_id;
String line_number;
String product_code;
String product_description;
Long product_quantity;
//Getters & Setters method
}
请找到我的帮助类将JSON转换为JavaObject
public class JsonUtil {
private static ObjectMapper mapper;
static{
mapper=new ObjectMapper();
}
public static <T> T convertJsonToJava(String jsonString, Class<T> cls)
{
T result=null;
try {
result=mapper.readValue(jsonString, cls);
} catch (JsonParseException e) {
System.out.println("Exception occured while converting JSON into
Java Objects"+e.getMessage());
return result;
}
}
您可以使用ObjectMapper,如下所示:
private ObjectMapper objectMapper = new ObjectMapper();
List<Event> events = readValue(jsonString, new TypeReference<List<Event>>() {});
当然,您需要将其包装在尝试捕获块中。
例如:Date值为:“dateCollected”:fri Jul 07 00:00:00 IST 1989, 但它只服用星期五而不是整个日期。
问题内容: 我正在将struts2用于Action,将jquery用于UI … 我想知道如何将Map对象转换为JSON对象并将其发送回UI, 现在可以在JSP页面中将其打印为普通的Java Map对象: 但我希望它是这样的: 我将如何实现这一目标…? 问题答案: 尝试Gson: 不过,我不建议将这种代码放入JSP。诸如此类的事情应该存在于Servlet或Action类之类的控制器中。 您还绝对不希
问题内容: 我有一个JSON对象,我将其转换为并在此处进行一些处理。稍后,我想转换相同的缓冲区数据以转换为有效的JSON对象。 我正在研究Node V6.9.1 下面是我尝试过的代码,但是当我转换回JSON却无法打开该对象时遇到了。 所以我尝试使用检查方式打印整个对象 如果我尝试像数组一样读取它 我也尝试解析它抛出 我需要将其视为我创建的真实对象(我的意思是像上面声明的那样)。 请帮忙.. 问题答
问题内容: 我希望能够从Java操作方法中的JSON字符串访问属性。只需说一下即可使用该字符串。下面是该字符串的示例: 在此字符串中,每个JSON对象都包含其他JSON对象的数组。目的是提取ID列表,其中任何给定对象都具有包含其他JSON对象的group属性。我将Google的Gson视为潜在的JSON插件。谁能提供某种形式的指导,说明如何从此JSON字符串生成Java? 问题答案: 我将Goog
我正试图将下面的json转换成java bean,需要你的帮助 Sort.json 我的豆子看起来像 我的测试课是 我看到的错误是 请建议:
问题内容: 我希望我的JSON看起来像这样: 到目前为止的代码: 和 我只是缺少如何使用Jackson将Java对象转换为JSON的部分: 我的问题是:我的课程正确吗?我必须调用哪个实例,以及如何实现此JSON输出? 问题答案: 要使用Jackson 转换JSON: