我想将以下JSON
字符串转换为Java
对象:
{
"user": {
"0": {
"firstName": "Monica",
"lastName": "Belluci"
},
"1": {
"firstName": "John",
"lastName": "Smith"
},
"2": {
"firstName": "Owen",
"lastName": "Hargreaves"
}
}
}
要将其转换为Java
对象,我创建了以下类:
class User {
private Map<String, MyObject> user = new HashMap<>();
//Getter and Setter is here
}
class MyObject {
private String firstName;
private String lastName;
//Getters and Setters are here
}
我使用Jackson库转换JSON
到Java
。以下是我如何使用杰克逊转换:
ObjectMapper mapper = new ObjectMapper();
User user = mapper.readValue(jsonString, User.class);
问题是,在转换上面的Map
中User对象始终是空的。我做错了什么?
提前谢谢。
你可以尝试下面的代码,它工作正常。.
public class User {
private Map<String, Map<String, String>> user;
public Map<String, Map<String, String>> getUser() {
return user;
}
public void setUser(Map<String, Map<String, String>> user) {
this.user = user;
}
}
public class JsonCast {
public static void main(String args[]) {
String response = "{\"user\" : {\"0\": {\"firstName\": \"Monica\",\"lastName\": \"Belluci\"},\"1\": { \"firstName\": \"John\",\"lastName\": \"Smith\"}}}";
ObjectMapper mapper = new ObjectMapper();
try {
User user = mapper.readValue(response, User.class);
System.out.println(user.getUser().get("0"));
} catch (IOException e) {
e.printStackTrace();
}
}
}
使用可以在gson库的帮助下完成。
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.Reader;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
public class JsonToJava {
public static void main(String[] args) throws IOException {
try(Reader reader = new InputStreamReader(JsonToJava.class.getResourceAsStream("/Server2.json"), "UTF-8")){
Gson gson = new GsonBuilder().create();
Person p = gson.fromJson(reader, YourPOJOClass.class);
System.out.println(p);
}
}
}
访问此链接希望这有助于:)
我觉得应该可以。我已经执行了这段代码,它工作正常。这是我的例子。
import com.fasterxml.jackson.databind.ObjectMapper;
import java.io.IOException;
public class TestJackson {
public static void main(String[] args) throws IOException {
ObjectMapper mapper = new ObjectMapper();
String testJson = "{\n" + " \"user\": {\n" + " \"0\": {\n" + " \"firstName\": \"Monica\",\n" + " \"lastName\": \"Belluci\"\n" + " },\n" + " \"1\": {\n" + " \"firstName\": \"John\",\n" + " \"lastName\": \"Smith\"\n" + " },\n" + " \"2\": {\n" + " \"firstName\": \"Owen\",\n" + " \"lastName\": \"Hargreaves\"\n" + " }\n" + " }\n" + "}";
User readValue = mapper.readValue(testJson, User.class);
System.out.println("readValue = " + readValue);
}
}
以及用户。类别:
import java.util.HashMap;
import java.util.Map;
class User {
private Map<String, MyObject> user = new HashMap<String, MyObject>();
public Map<String, MyObject> getUser() {
return user;
}
public void setUser(Map<String, MyObject> user) {
this.user = user;
}
@Override
public String toString() {
return "User{" +
"user=" + user +
'}';
}
}
class MyObject {
private String firstName;
private String lastName;
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;
}
@Override
public String toString() {
return "MyObject{" +
"firstName='" + firstName + '\'' +
", lastName='" + lastName + '\'' +
'}';
}
}
问题内容: 我想将以下JSON字符串转换为Java对象: 我的目标是轻松访问它,例如: 我听说过Jackson,但是由于涉及“ mymusic”列表,我不知道如何使用它来适应我拥有的json字符串,因为它不仅仅是键值对。如果杰克逊不是最好的选择,我该如何用杰克逊完成? 问题答案: 为此,无需与GSON一起使用;杰克逊可以做普通的地图/列表: 或更方便的JSON树: 顺便说一句,没有理由为什么您不能
问题内容: 我在JS中有一个JSON对象,我想将其转换为字符串。这是功能吗? 提前致谢, 问题答案: JSON.stringify() 将值转换为JSON,如果指定了replacer函数,则可以选择替换值,如果指定了replacer数组,则可以选择仅包括指定的属性。
问题内容: 我已经开始在golang中工作,我正在尝试解析JSON字符串以构建结构,但无法正常工作。 JSON字符串: 每日”:[{“ userAccessToken”:“ acessToken”,“ uploadStartTimeInSeconds”:1499744832,“ uploadEndTimeInSeconds”:1499744832,“ callbackURL”:“ callback
问题内容: 使用服务器端C#,如何将查询字符串转换为键和值的JSON字符串?例如,我想转换 至 我知道如何手动解析和格式化,但是在走那条路之前,我想问一下,因为可能有一个库可以做得更好。谢谢! 问题答案: 这给出了您想要的完全相同的json
问题内容: 我试过了: 它返回:我期望 如何执行此操作? 问题答案: 不是IDictionary,因此无法直接将其序列化。您首先需要将其转换为字典,然后对其进行序列化。 更新 :关于每个键多个值的问题之后,对的调用将简单地将它们返回,并以逗号分隔,这可能没问题。如果不是,则总是可以调用并决定如何适当地使用这些值。更新了下面的代码以显示一种可能的方法。
问题内容: 我想在我的swift项目中做一个将String转换成Dictionary json格式的函数,但是出现一个错误: 无法转换表达式的类型(@lvalue NSData,options:IntegerLitralConvertible … 这是我的代码: 我在Objective-C中实现此功能: 问题答案: 警告:如果出于某种原因必须使用JSON字符串,这是将JSON字符串转换为字典的便捷