Ошибка синтаксического анализатора JSON, проблема в строке json

#iphone #json #parsing

#iPhone #json #синтаксический анализ

Вопрос:

Это строка, которую я передаю в SBJsonStreamParser

{«ID»: «6»,»userId»:»8″, «WeighedOn»: «2/11/2011», «Weight»: «73,5»},{«ID»: «9»,»userId»: «8», «WeighedOn»: «14/2011», «Weight»: «73,5»},{«ID»: «15»,»userId»: «8», » Взвешивание»: «15.02.2011 «, «Вес»: «73.5»}, {«Идентификатор»: «25», «Идентификатор пользователя»: «8», «Взвешивание»: «16.02.2011», «Вес»: «73.5»}, { «ИДЕНТИФИКАТОР»: «46», «Идентификатор пользователя»: «8», «Взвешивание»: «18.02.2011», «Вес»: «161.7»}, { «Идентификатор»: «47», «Идентификатор пользователя»:» 8″, «Взвешивание»: «21/22/2011 «, «Вес»: «161,7»},{«ИДЕНТИФИКАТОР»: «99», «Идентификатор пользователя»: «8», «Взвешивание»: «22/22/2011 «,»Weight»:»161.82″},{«ID»:»134″,»UserID»:»8″,»WeighedOn»:»2/23/2011″,»Weight»:»198″},{«ID»:»158″,»UserID»:»8″,»WeighedOn»:» 25.02.2011 «, «Weight»: «199.65»}, {«ID»: «189»,»userId»: «8», «Weightedon»: «28.02.2011», «Weight»: «166.17»},{«ID»: «220»,»userId»: «8», «Weightedon»: «3/1/2011», «Weight»: «60»},{«ID» : «231», «Идентификатор пользователя»: «8», «Взвешивание»: «3/2/2011», «Вес»: «165»}, {«ИДЕНТИФИКАТОР»: «271», «Идентификатор пользователя»: «8», «Взвешивание»: «3/3/2011», «Вес»: «220»},{ «Идентификатор»: «281», «Идентификатор пользователя»: «8», «Взвешивание»: «3/4/2011», «Вес»: «220»},{«ИДЕНТИФИКАТОР «:»302», «Идентификатор пользователя»: «8», «Взвешивание»: «3/7/2011 «, «Вес»: «166,1»},{«ИДЕНТИФИКАТОР»: «316», «Идентификатор пользователя»: «8», «Взвешивание»: «3/9/2011 «, «Вес»: «166.1»},{«ID»:»325″,»UserID»:»8″,»WeighedOn»:»3/10/2011″,»Weight»:»70″},{«ID»:»334″,»UserID»:»8″,»WeighedOn»:» 3.11.2011 «, «Weight»: «70»},{«ID»: «343»,»userId»: «8»,»Weightedon»: «14.3.2011», «Weight»: «70»},{«ID»: «353»,»userId»: «8», «Weightedon»: «15.3.2011», «Weight»:»70″},{«ID»:» 358″, «Идентификатор пользователя»: «8», «Взвешивание»: «16.03.2011 «,»Weight»:»70″},{«ID»:»371″,»UserID»:»8″,»WeighedOn»:»3/23/2011″,»Weight»:»198″},{«ID»:»377″,»UserID»:»8″,»WeighedOn»:»3/24/2011″,»Weight»:»99″},{«ID»:»437″,»UserID»:»8″,»WeighedOn»:» 25.03.2011 «,»Weight»:»160″},{«ID»: «472»,»userId»: «8», «WeighedOn»: «4/1/2011″,»Weight»:»180″}

Я преобразую ее в данные и анализирую, используя следующий код

 str = [NSString stringWithFormat:@"{"ID":"6","UserID":"8","WeighedOn":"2/11/2011 ","Weight":"73.5"},{"ID":"9","UserID":"8","WeighedOn":"2/14/2011 ","Weight":"73.5"},{"ID":"15","UserID":"8","WeighedOn":"2/15/2011 ","Weight":"73.5"},{"ID":"25","UserID":"8","WeighedOn":"2/16/2011 ","Weight":"73.5"},{"ID":"46","UserID":"8","WeighedOn":"2/18/2011 ","Weight":"161.7"},{"ID":"47","UserID":"8","WeighedOn":"2/21/2011 ","Weight":"161.7"},{"ID":"99","UserID":"8","WeighedOn":"2/22/2011 ","Weight":"161.82"},{"ID":"134","UserID":"8","WeighedOn":"2/23/2011","Weight":"198"},{"ID":"158","UserID":"8","WeighedOn":"2/25/2011 ","Weight":"199.65"},{"ID":"189","UserID":"8","WeighedOn":"2/28/2011 ","Weight":"166.17"},{"ID":"220","UserID":"8","WeighedOn":"3/1/2011 ","Weight":"60"},{"ID":"231","UserID":"8","WeighedOn":"3/2/2011 ","Weight":"165"},{"ID":"271","UserID":"8","WeighedOn":"3/3/2011 ","Weight":"220"},{"ID":"281","UserID":"8","WeighedOn":"3/4/2011 ","Weight":"220"},{"ID":"302","UserID":"8","WeighedOn":"3/7/2011 ","Weight":"166.1"},{"ID":"316","UserID":"8","WeighedOn":"3/9/2011 ","Weight":"166.1"},{"ID":"325","UserID":"8","WeighedOn":"3/10/2011","Weight":"70"},{"ID":"334","UserID":"8","WeighedOn":"3/11/2011 ","Weight":"70"},{"ID":"343","UserID":"8","WeighedOn":"3/14/2011 ","Weight":"70"},{"ID":"353","UserID":"8","WeighedOn":"3/15/2011 ","Weight":"70"},{"ID":"358","UserID":"8","WeighedOn":"3/16/2011 ","Weight":"70"},{"ID":"371","UserID":"8","WeighedOn":"3/23/2011","Weight":"198"},{"ID":"377","UserID":"8","WeighedOn":"3/24/2011","Weight":"99"},{"ID":"437","UserID":"8","WeighedOn":"3/25/2011 ","Weight":"160"},{"ID":"472","UserID":"8","WeighedOn":"4/1/2011 ","Weight":"180"}"];
NSLog(@"Str: %@",str);

NSData * data1 = [str dataUsingEncoding:NSUTF8StringEncoding];
data = data1;

SBJsonStreamParserStatus status = [parser parse:data];
  

Но я получаю следующую ошибку всякий раз, когда я ее разбираю.

Ошибка синтаксического анализатора: разделитель значений токена не ожидается перед самым внешним массивом или объектом

Ребята, можете ли вы сказать мне, что это такое, что не так?

Комментарии:

1. В IOS 5.0 Apple включила класс NSJSONSerialization для преобразования JSON в объекты Foundation и преобразования объектов Foundation в JSON. Проверьте developer.apple.com/library/ios/#documentation/Foundation /… для получения подробной информации

Ответ №1:

Это не полная структура данных JSON. Данные содержат разделители «,» после каждого «}».

Проверьте с помощью JSONLint для получения более подробной информации.

Комментарии:

1. Отличный инструмент в вашем арсенале программирования. Спасибо за ваш пост.