如何将 class<T> 个对象的 Map 转换为 json java
How to convert Map of class<T> objects to json java
我有 class 一些属性,例如:
public class MyClass {
public int number;
public String s;
}
我想将此 class 的地图转换为 json。例如:
Map<String, MyClass> map = new HashMap();
map.put("sss", new MyClass(1, "blabla");
json j = new json(map);
我希望输出如下:
{"sss":{"number":"1","s":"blabla"}}
JAVA有人知道怎么做吗?我尝试使用 JSONObject
和 Gson
但对我不起作用。
使用 Gson:
Gson gson = new GsonBuilder().create();
String json = gson.toJson(map);
你必须修复,括号问题。
map.put("sss", new MyClass(1,"test")); //observe 2 braces at the end!
以下代码应该可以为您解决问题,
Gson gson = new Gson();
String myJson = gson.toJson(map);
输出:
{"sss":{"number":1,"s":"test"}}
您可以使用 Gson class 的 toJson() 方法将 java 对象转换为 json ,请参见下面的示例,
public class SomeObject {
private int data1 = 100;
private String data2 = "hello";
private List<String> list = new ArrayList<String>() {
{
add("String 1");
add("String 2");
add("String 3");
}
};
//getter and setter methods
@Override
public String toString() {
return "SomeObject [data1=" + data1 + ", data2=" + data2 + ", list="
+ list + "]";
}
}
i 会将上面的 class' 对象转换为 json , getter 和 setter 方法在您将 json 转换回java 对象 .
public static void main(String[] args) {
SomeObject obj = new SomeObject();
Gson gson = new Gson();
// convert java object to JSON format,
// and returned as JSON formatted string
String json = gson.toJson(obj);
System.out.println(json);
}
输出:
{"data1":100,"data2":"hello","list":["String 1","String 2","String 3"]}
为每个 class 实现一些自定义 toJSON()
方法,如下所示:
public class MyClass1 {
String number;
String name;
public MyClass1(String number, String name){
this.number = number;
this.name = name;
}
public JSONObject toJSON() throws JSONException {
return new JSONObject("{\"number\" : \""+this.number+"\", \"name\":\""+this.name+"\"}");
}
}
然后用它把你的map
转换成jsonObject
:
public class MapToJSON {
public static void main(String[] args) throws JSONException {
Map<String, JSONObject> map = new HashMap<String, JSONObject>();
map.put("sss", new MyClass1("1", "Hello").toJSON());
System.out.println(new JSONObject(map));
}
}
我找到了方法:
import com.google.gson.Gson;
import org.json.JSONObject;
Gson gson = new Gson();
map.put("sss", new JSONObject(gson.toJson(new MyClass(1, "Hello"))));
map.put("aaa", new JSONObject(gson.toJson(new MyClass(2, "blabla"))));
String output = new JSONObject(map).toString();
现在输出正确了。
非常感谢所有试图帮助我解决这个问题的人...
我有 class 一些属性,例如:
public class MyClass {
public int number;
public String s;
}
我想将此 class 的地图转换为 json。例如:
Map<String, MyClass> map = new HashMap();
map.put("sss", new MyClass(1, "blabla");
json j = new json(map);
我希望输出如下:
{"sss":{"number":"1","s":"blabla"}}
JAVA有人知道怎么做吗?我尝试使用 JSONObject
和 Gson
但对我不起作用。
使用 Gson:
Gson gson = new GsonBuilder().create();
String json = gson.toJson(map);
你必须修复,括号问题。
map.put("sss", new MyClass(1,"test")); //observe 2 braces at the end!
以下代码应该可以为您解决问题,
Gson gson = new Gson();
String myJson = gson.toJson(map);
输出:
{"sss":{"number":1,"s":"test"}}
您可以使用 Gson class 的 toJson() 方法将 java 对象转换为 json ,请参见下面的示例,
public class SomeObject {
private int data1 = 100;
private String data2 = "hello";
private List<String> list = new ArrayList<String>() {
{
add("String 1");
add("String 2");
add("String 3");
}
};
//getter and setter methods
@Override
public String toString() {
return "SomeObject [data1=" + data1 + ", data2=" + data2 + ", list="
+ list + "]";
}
}
i 会将上面的 class' 对象转换为 json , getter 和 setter 方法在您将 json 转换回java 对象 .
public static void main(String[] args) {
SomeObject obj = new SomeObject();
Gson gson = new Gson();
// convert java object to JSON format,
// and returned as JSON formatted string
String json = gson.toJson(obj);
System.out.println(json);
}
输出:
{"data1":100,"data2":"hello","list":["String 1","String 2","String 3"]}
为每个 class 实现一些自定义 toJSON()
方法,如下所示:
public class MyClass1 {
String number;
String name;
public MyClass1(String number, String name){
this.number = number;
this.name = name;
}
public JSONObject toJSON() throws JSONException {
return new JSONObject("{\"number\" : \""+this.number+"\", \"name\":\""+this.name+"\"}");
}
}
然后用它把你的map
转换成jsonObject
:
public class MapToJSON {
public static void main(String[] args) throws JSONException {
Map<String, JSONObject> map = new HashMap<String, JSONObject>();
map.put("sss", new MyClass1("1", "Hello").toJSON());
System.out.println(new JSONObject(map));
}
}
我找到了方法:
import com.google.gson.Gson;
import org.json.JSONObject;
Gson gson = new Gson();
map.put("sss", new JSONObject(gson.toJson(new MyClass(1, "Hello"))));
map.put("aaa", new JSONObject(gson.toJson(new MyClass(2, "blabla"))));
String output = new JSONObject(map).toString();
现在输出正确了。
非常感谢所有试图帮助我解决这个问题的人...