【发布时间】:2017-05-18 21:54:33
【问题描述】:
我有一个通过 GSON 映射 json 的 POJO,如下所示:
public class Email {
private String emailFrom;
private String[] emailTo;
private String subject;
//getters and setters
}
接下来我将在我的客户端应用程序中创建这样的 JSON 对象:
JSONObject basicParams = new JSONObject();
basicParams.put("emailFrom", "abc@gmail.com ");
String[] emailnew= {"cde@gmail.com ","fgh@gmail.com"};
basicParams.put("emailTo", emailnew);
basicParams.put("subject", "Test GSON");
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
HttpEntity<String> entity = new HttpEntity<String>(request.toString(), headers);// converting the json object toString here seems to be the issue
ResponseEntity<String> response = restTemplate.exchange(testUrl, HttpMethod.POST, entity, String.class);
在我的控制器中,我正在这样做:
Gson gson = new GsonBuilder().create();
Email email = gson.fromJson(json, Email.class);
它正在抛出错误。 当我调试时,我的 JSON 看起来像这样:
"basic" -> " {"templateName":"masterTemplate","subject":"Test GSON","emailFrom":"abc@gmail.com","emailTo":"[Ljava.lang.String;@1dc2c13c"}"
为什么它有对象引用?我怎样才能让它保持实际值?
【问题讨论】:
-
它抛出了什么错误? “我调用 JSON 的样子”是什么意思?输出是一些调试打印吗?
-
第二个 sn-p 在哪里连接第三个?你是如何得到 JSON 字符串的?
JSONObject是什么库? -
错误:第 1 行中的解析器错误..
-
我也在编写一个客户端,我正在创建我的 JSON 对象,使用 Rest Template 来调用我的宁静 Web 服务。
-
你混合了两个不同的库。
标签: java json gson resttemplate