#json #c#-4.0 #mono #xamarin.ios
#json #c #-4.0 #mono #xamarin.ios
Вопрос:
Как мне вручную создать объект JSON в monotouch (4.0)?
Система.Доступно пространство имен JSON ( JsonObject
, JsonArray
jSonPrimitive
и JsonValue
), но все они абстрактны, поэтому я не могу просто сделать это :
JsonObject myObject = new JsonObject();
Мне нужно вручную создать объект JSON, и я не хочу использовать DataContractSerialization.
В справочных целях :
-Позже мне нужно будет перенести этот объект JSON на сервер с помощью веб-вызова. (но я могу справиться с этой частью)
Ответ №1:
Использование JSON.net http://json.codeplex.com
Комментарии:
1. в то время как JSON.net это отличная библиотека, боюсь, что для данного конкретного проекта об этом не может быть и речи. 1 (поскольку я не упоминал, что не могу ее использовать) в любом случае.
2. просто из любопытства, против чего существует ограничение JSON.net ?
3. Более чем несколько отчетов о JSON.net отлично работает в симуляторе, но сразу же выходит из строя при запуске на реальном устройстве. В настоящее время у меня нет возможности протестировать это (поскольку Apple все еще должна подтвердить мою лицензию разработчика), но мне нужно завершить свой продукт в течение ограниченного периода времени, поэтому на всякий случай я бы предпочел избежать этого.
Ответ №2:
Как выясняется, после долгого времени попыток и поиска; можно использовать только JsonPrimitive
конструктор и JsonObject
constructor.
JsonPrimitive
и JsonValue
оба могут быть приведены к JsonValue
.
JsonObject
требуется KeyValuePair<string, JsonValue>
если я определяю функции, подобные этой :
public static KeyValuePair<String, JsonValue> IntRequired(string key, int val)
{
return new KeyValuePair<String, JsonValue>(key, new JsonPrimitive(val));
}
я могу создать объект json, подобный этому :
JSonObject myObject = new JsonObject();
myObject.add(new IntRequired("id",1));