Android 与 JSON 合作
Android working with JSON
我想使用 JSON 来更方便地存储 3 个值。
我要存储的值是 String
、String
和 Boolean
。
其中第一个字符串应该用于识别 JSON.
中其他值的 3 个值
最后 - 在用户设置他的设置后,我希望 json 看起来像这样:
{
"Room1":
{
"IP": "192.168.0.2",
"use": "true"
},
"Bathroom":
{
"IP": "192.168.0.3",
"use": "false"
},
"Kitchen":
{
"IP": "192.168.0.4",
"use": "true"
}
.
.
.
.
}
最后我想 "easily" 检索这些值并更改其中的一些值(例如,将 use
设置为 false)。
注意:JSON 将被转换为字符串并保存在 SharedPreferences 中供以后使用。
实现这个的好方法是什么?他们有什么好的教程或推荐的库吗?
如果此时使用 json 不是一个好主意,我还应该怎么做?
我想我宁愿使用以下 JSON:
{ "Rooms" : [
{
"Type" : "Room1",
"IP" : "192.168.0.2",
"use" : "true"
},
{
"Type" : "Bathroom",
"IP" : "192.168.0.3",
"use" : "false"
},
{
"Type" : "Kitchen",
"IP" : "192.168.0.4",
"use" : "true"
}
]
}
使用这个 POJO:
public class Room {
@Expose
private String Type;
@Expose
private String IP;
@Expose
private String use;
public String getType() {
return Type;
}
public void setType(String Type) {
this.Type = Type;
}
public String getIP() {
return IP;
}
public void setIP(String IP) {
this.IP = IP;
}
public String getUse() {
return use;
}
public void setUse(String use) {
this.use = use;
}
}
添加: 房间列表包装 ArrayList
:
public class RoomList{
@Expose
private ArrayList<Room> Rooms = new ArrayList<Room>();
public ArrayList<Room> getRooms() {
return Rooms;
}
public void setRooms(ArrayList<Room> Rooms) {
this.Rooms = Rooms;
}
}
edited: 反之亦然 Gson:
String jsonString = "{ "Rooms" : [ { "Type" : "Room1", ... }, ... ] }";
RoomList rooms = new RoomList();
Gson gson = new Gson();
rooms = gson.fromJson(jsonString, rooms.getClass());
for (Room room : rooms.getRooms())
System.out.println (room.getType());
我想使用 JSON 来更方便地存储 3 个值。
我要存储的值是 String
、String
和 Boolean
。
其中第一个字符串应该用于识别 JSON.
最后 - 在用户设置他的设置后,我希望 json 看起来像这样:
{
"Room1":
{
"IP": "192.168.0.2",
"use": "true"
},
"Bathroom":
{
"IP": "192.168.0.3",
"use": "false"
},
"Kitchen":
{
"IP": "192.168.0.4",
"use": "true"
}
.
.
.
.
}
最后我想 "easily" 检索这些值并更改其中的一些值(例如,将 use
设置为 false)。
注意:JSON 将被转换为字符串并保存在 SharedPreferences 中供以后使用。
实现这个的好方法是什么?他们有什么好的教程或推荐的库吗?
如果此时使用 json 不是一个好主意,我还应该怎么做?
我想我宁愿使用以下 JSON:
{ "Rooms" : [
{
"Type" : "Room1",
"IP" : "192.168.0.2",
"use" : "true"
},
{
"Type" : "Bathroom",
"IP" : "192.168.0.3",
"use" : "false"
},
{
"Type" : "Kitchen",
"IP" : "192.168.0.4",
"use" : "true"
}
]
}
使用这个 POJO:
public class Room {
@Expose
private String Type;
@Expose
private String IP;
@Expose
private String use;
public String getType() {
return Type;
}
public void setType(String Type) {
this.Type = Type;
}
public String getIP() {
return IP;
}
public void setIP(String IP) {
this.IP = IP;
}
public String getUse() {
return use;
}
public void setUse(String use) {
this.use = use;
}
}
添加: 房间列表包装 ArrayList
:
public class RoomList{
@Expose
private ArrayList<Room> Rooms = new ArrayList<Room>();
public ArrayList<Room> getRooms() {
return Rooms;
}
public void setRooms(ArrayList<Room> Rooms) {
this.Rooms = Rooms;
}
}
edited: 反之亦然 Gson:
String jsonString = "{ "Rooms" : [ { "Type" : "Room1", ... }, ... ] }";
RoomList rooms = new RoomList();
Gson gson = new Gson();
rooms = gson.fromJson(jsonString, rooms.getClass());
for (Room room : rooms.getRooms())
System.out.println (room.getType());