Я использую 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
}
EDIT: ваша строка должна быть в (JSON-массив): [{"if_ack": 4}, {"if_cmd": 1, "if_state": 1}, {"if_cmd": 1, "if_state": 5}]
ПРИМЕР: У вас JSON вот так: [{"id": "1", "image": "test1"}, {"id": "2", "image": "test2"}]
YourClass.java должно быть:
public class YourClass{
private int id;
private String image;
//+ constructor, getters, setters,...
}
На сервере вы можете получить JSON со стороны клиента по InputStream является:
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
}
Строка - "{" if_ack ": 4}, {" if_cmd ": 1," if_state ": 1}, {" if_cmd ": 1," if_state ": 5}" – user3712016
Сначала вы можете редактировать свои post, поэтому строка будет отображаться в вопросе. Во-вторых, я предполагаю, что нет правильного формата JSON из-за отсутствия скобок. Поэтому ничто не может автоматически преобразовать эту строку. Возможное решение состоит в том, чтобы окружить его '' '' и '' ', поэтому он становится' JSONArray' или '{" root ":}' like 'JSONObject' –
ceekay
thanks @ceekay, я стараюсь, как вы предложил !! – user3712016