Я пытаюсь разобрать данные JSON. Данные представляют собой массив с объектами внутри него. Это массив JSON я получаю от URL:iOS5: невозможно прочитать значение из JSON с помощью NSJSONSerialization
["{content:Airfare}",
"{content:Dues \/ Subscriptions}",
"{content:Education \/ Training}",
"{content:Entertainment}",
"{content:GS-OCWD}",
"{content:GS-OCWE}",
"{content:GS-Shift A}",
"{content:GS-Shift B}",
"{content:GS-Shift C}",
"{content:Ground Transportation}",
"{content:Legal Fees}",
"{content:Lodging}",
"{content:Meals}",
"{content:Mileage}",
"{content:Office Supplies}",
"{content:Other Expenses}",
"{content:Prof. Dues & Memberships}",
"{content:Rental Car}",
"{content:Telephone}",
"{content:Telephone \/ Internet}",
"{content:Tolls \/ Parking}"]
Это код для синтаксического анализа массива JSON в моем .m файл
NSError *error = nil;
NSData *jsonData = [NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://localhost:8080/de.vogella.jersey.final/rest/notes"]];
NSArray *jsonArray = [NSJSONSerialization JSONObjectWithData: jsonData options: NSJSONReadingMutableContainers error: &error];
if (!jsonArray) {
NSLog(@"Error parsing JSON: %@",error);
} else {
for(NSDictionary *item in jsonArray) {
NSLog(@"Item: %@", [item objectForKey:@"content"]);
[_identificationTypes1 addObject:item];
}
}
Когда линия NSLog(@"Item: %@", [item objectForKey:@"content"]);
выполняется сбои приложения и дает ошибку [__NSCFString objectForKey:]: unrecognized selector
. Он не может прочитать ключевой контент. Если я изменил строку на NSLog(@"Item: %@", item);
, я могу увидеть все значения, такие как {content:Airfare}
. Мне просто нужна стоимость авиабилетов. Может кто-нибудь мне помочь
Это код для создания JSON. Я использую Джерси и JAVA. Можете ли вы помочь мне в формате JSON с URL-адресом? Это мой DAO код:
public JSONArray getAllNotes()
{
PreparedStatement prepStmt = null;
List<Note> notes = new ArrayList<Note>();
try {
String cSQL = "SELECT EXPENDITURE_TYPE FROM PA_ONLINE_EXPENDITURE_TYPES_V;
prepStmt = connection.prepareStatement(cSQL);
ResultSet result = prepStmt.executeQuery();
while (result.next())
{
Note note = new Note();
//note.setNoteId(result.getInt(1));
note.setContent(result.getString(1));
//note.setCreatedDate(new java.util.Date(result.getDate(3).getTime()));
notes.add(note);
}
return new JSONArray(notes);
} catch (SQLException e) {
e.printStackTrace();
prepStmt = null;
return null;
}
}
Это метод POJO:
@Override
public String toString() {
//return "{Content:"+content+"}" ;
return "ExpType [content=" + content + "]";
}
Это метод, который вызывает метод DAO:
@GET
@Produces({MediaType.APPLICATION_JSON})
public JSONArray getNotes() {
return dao.getAllNotes();
}
Как вы создаете правильный формат? Можете ли вы мне помочь? Я новичок в этом – user1342592
. Я пытаюсь сказать, что проблема заключается в ответе, который вы получаете от вашего URL-адреса. В вашем случае виновником является формат JSON, который вы получаете от 'http: // localhost: 8080/de.vogella.jersey.final/rest/notes'. В коде objc нет ничего плохого. – Alladinian
Можете ли вы помочь мне в формате JSON с URL-адресом? Это мой код DAO – user1342592