Создание объекта JSON в MonoTouch (C #)

#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));