2012-04-26 5 views
0

Im используя NewtonSoft Linq 2 JSON сериализации объектов из классов прямо в строку JSONJSON RPC Сериализация объектов с КОНКРЕТНЫЕ имен

Класс объекта Я использую очень прост:

public class OverviewQuery 
{ 
    public string id { get; set; } 
    public string method { get; set; } 
    public string Params { get; set; } 

    public OverviewQuery(string sid, string smethod, string sparam) 
    { 
     this.id = sid; 
     this.method = smethod; 
     this.Params = sparam; 
    } 
} 

Если я сериализация это, я получаю строку JSON:

"{\"id\":\"1\",\"method\":\"getStockItemDetails\",\"Params\":\"0000000002\"}" 

сервер Oracle Я подключение (через WebAPI в) требует от меня, чтобы использовать очень и очень специфическое именование, здесь должно быть

"{\"id\":\"1\",\"method\":\"getStockItemDetails\",\"Params\":[\"0000000002\"]}" 

Есть ли способ, которым NewtonSoft реализовал способ достижения этого форматирования? Без правильного форматирования единственный способ отправить информацию - все это происходит с помощью жесткого кодирования.

+0

Я временно исправляю эту проблему, добавив строку привязки между уже отформатированным запросом, частично жестко закодированным другими словами .. «{\" id \ ": \" 1 \ ", \" method \ ": \ "getStockItemDetails \", \ "Params \": [\ "" + idref + "\"]} " Это работает .. но это очень неряшливый способ писать код .. – NoxBene

ответ

0

Что делает сериализатор с вашим классом, кажется простым.

Обычно услуги JSON-RPC требует, чтобы значение params в конверте быть JSON Array (для индексированных параметров) или Object (для именованных параметров).

Не могли бы вы просто изменить свой класс таким образом, чтобы Params был Array из String?