转换JSON对象中的字符串并进行验证

时间:2015-04-10 10:51:48

标签: java json jsonobject

我正在尝试验证以下字符串。实际上我在我的servlet中收到这个字符串,现在我需要在后端验证这些值。这样做的正确方法是什么。我应该首先将其转换为JSON对象然后转换为HashMap吗?请建议在此处使用正确/适当的方法。我是Java和JSON的新手。

字符串是

"{"if_ack":4},{"if_cmd":1,"if_state":1},{"if_cmd":1,"if_state":5}" 

1 个答案:

答案 0 :(得分:0)

我正在使用GSON在服务器上处理JSON。例如:

InputStream is (send by client, JSON format)
Reader reader = new InputStreamReader(is);
Gson gson = new Gson();
List<YourClass> items = gson.fromJson(reader, new TypeToken<List<YourClass>>()

YourClass应该具有if_ack,if_state,if_cmd,...等属性。

然后你就像这样简单:

for (YourClass item : items) {
   //do whatever you want
}

编辑:你的字符串应该是正确的JSON格式,如下所示(JSON数组):[{&#34; if_ack&#34;:4},{&#34; if_cmd&#34;:1,&#34; if_state&#34;:1},{&#34; if_cmd&#34;:1,&#34; if_state&#34;:5}]

实施例: 你有这样的JSON:[{"id": "1", "image": "test1"}, {"id": "2", "image": "test2"}]

YourClass.java应该是:

public class YourClass{
  private int id;
  private String image;
  //+ constructor, getters, setters,...
}

在服务器上,您可以通过InputStream从客户端接收JSON:

Reader reader =  new InputStreamReader(is, "UTF-8");
Gson gson = new Gson();
List<YourClass> items = gson.fromJson(reader, new TypeToken<List<YourClass>>();

然后:

for (YourClass item: items){
   //acces to item properties like item.id, item.image
}