Мой первый пост здесь :)iPhone на Android NSMutableDictionary NSArray в HashMap ArrayList
У меня летом работу делает немного кодирования - я определенно не про, но!
Я конвертирую это приложение для iPhone в Android, это почти сделано. Просто пытаюсь преобразовать эту пьесу.
Массив участников передается на сервер через JSON. Это для меня, в Android, похоже, что это будет массив HashMaps. Это верно?
Вот Objective C:
NSMutableArray *participants = [[NSMutableArray alloc] init];
NSArray *listOfParticipants = [[game getListOfGameParticipants]allValues];
for (Player *playerObj in listOfParticipants)
{
NSMutableDictionary *playerToAdd = [[NSMutableDictionary alloc] init];
if ([playerObj.email length] == 0) {
[playerToAdd setValue:playerObj.phoneNumber forKey:@"Id"];
}
else
{
[playerToAdd setValue:playerObj.email forKey:@"Id"];
}
[playerToAdd setValue:playerObj.firstName forKey:@"FirstName"];
[playerToAdd setValue:playerObj.lastName forKey:@"LastName"];
[playerToAdd setValue:playerObj.phoneNumber forKey:@"PhoneNumber"];
[participants addObject:playerToAdd];
[playerToAdd release];
}
В getListOfGameParticipants является:
- (NSDictionary*) getListOfGameParticipants
{
return participants ;
}
и Android код, который я попытался это:
ArrayList<Map<String, String>> list = new ArrayList<Map<String, String>>();
Map<String, String> playersObject = new HashMap<String, String>();
playersObject.put("Id", "[email protected]");
playersObject.put("FirstName", "Test Firstname");
playersObject.put("LastName", "Test Surname");
playersObject.put("PhoneNumber", "Test Number");
list.add(playersObject);
json.put("ParticipantIds", list);
Пожалуйста, помогите :)
Редактировать: Это не работает. Сервер отчеты назад:
The server encountered an error processing the request. The exception message is 'Expecting state 'Element'.. Encountered 'Text' with name '', namespace ''. '. See server logs for more details.
Тип данных ожидаются является:
[DataMember]
public Player[] ParticipantIds { get; set; }
Edit: Дальнейшее обновление:
теперь у меня есть мой массив HashMaps разбора в строку JSON в хорошем формате , Мне нужно разобрать эту строку JSON в JSONObject и поместить этот JSONObject в JSONArray.
Следующий код не работает:
Map<String, String> playersObject = new HashMap<String, String>();
playersObject.put("PhoneNumber", "TestNumber");
playersObject.put("Id", "[email protected]");
playersObject.put("FirstName", "Test Firstname");
playersObject.put("LastName", "Test Surname");
ArrayList<Map<String, String>> list = new ArrayList<Map<String, String>>();
list.add(playersObject);
String jsonValue = org.json.simple.JSONValue.toJSONString(list);
JSONObject hashMapObject = new JSONObject();
hashMapObject.getString(jsonValue);
JSONArray hashMapArray = new JSONArray(jsonValue);
hashMapArray.put(hashMapObject);
Это дает ошибку:
org.json.JSONException: No value for [{"LastName":"Test Surname","FirstName":"Test Firstname","Id":"[email protected]","PhoneNumber":"TestNumber"}]
Помощь!
В чем проблема?Если он работает, он работает, и если он не говорит нам, что не так, и мы можем выяснить, как его исправить. Я разработчик iOS, поэтому я не знаю, правильно ли установлен код Android, но он выглядит хорошо для меня. –
Не работает. Сервер сообщает: «Сервер обнаружил ошибку при обработке запроса. Сообщение об исключении -« Ожидание состояния «Элемент» .. Обнаружено «Текст» с именем «», пространство имен «.». Подробнее см. Журналы сервера. » – JaboJG
Ожидается, что сервер JSON: [DataMember] public Player [] MemberantIds {get; задавать; } – JaboJG