Я пытаюсь получить NSData из строки json, чтобы потом использовать его для создания MGLShape (из Mapbox SDK) следующим образом:
MGLShape.ShapeWithData(jsonData, 4, out error); //jsonData is the NSData, 4 is the nuint for the type of encoding and ou error is a plain NSError.
Но я не могу сериализоватьстрока json в NSData с использованием NSJsonSerialization, строка json исправляется и проверяется ранее (но когда я использую строку NSString из строки, она добавляет дополнительную пару скобок "{// json}", которую я могу удалить, прежде чем пытаться выполнить NSJsonSerializationВот как я пытаюсь достичь своей цели:
string jsonSerialized = JsonConvert.SerializeObject(fc);//Valid Json
NSString json = new NSString(jsonSerialized);//Adds the extra pair of brackets
NSData jsonData = NSJsonSerialization.Serialize(json, NSJsonWritingOptions.SortedKeys, out error);
Но это дает мне следующую ошибку:
Foundation.MonoTouchException: Objective-C exception thrown. Name: NSInvalidArgumentException Reason: *** +[NSJSONSerialization dataWithJSONObject:options:error:]: Invalid top-level type in JSON write
Эта ошибка происходит с или без дополнительной парыскобки (убрал первый и последний символы из строки NSS), вот сокращенная версия моего json: (я использовал https://jsonformatter.curiousconcept.com/ для проверки json)
{
"type":"FeatureCollection",
"crs":null,
"features":[
{
"type":"Feature",
"geometry":{
"type":"Point",
"coordinates":[
-9.000000,
38.000000
]
},
"properties":{
"id":1,
"icon":"MyIcon.png"
}
}
]
}
Что я делаю неправильноздесь? Как я могу разобрать строку JSON в NSData?