NSDictionary для Json в Xamarin.iOS - PullRequest
       62

NSDictionary для Json в Xamarin.iOS

0 голосов
/ 15 февраля 2019

Я пытаюсь преобразовать NSDictionary в Json, используя NSJsonSerialization.Serialize.Но я не получаю ожидаемый вывод

Код в Xamarin.iOS

var dictionary = new NSDictionary(
                new NSString("userName"), new NSString("450012"),
                new NSString("password"), new NSString("Abc134"),
                new NSString("companyId"), new NSString("CM1")
            );

request.Body = NSJsonSerialization.Serialize(dictionary, 0, out error); 

проблема в том, что значение переменной dictionary показывает

{{пароль ": Abc134, companyId: CM1, userName: 450012}}

вместо

{пароль: Abc134, companyId: CM1, userName: 450012}

это добавляет одну фигурную скобку спереди и сзади

есть ли способ сгенерировать правильную строку json для пользовательских значений ввода

Ответы [ 2 ]

0 голосов
/ 15 февраля 2019

Нет ничего плохого в вашем JSON.Если вы напечатаете его в консоли, вы увидите, что печатаемое значение - это ожидаемое вами значение.

{"password":"Abc134","companyId":"CM1","userName":"450012"}

Попробуйте:

Console.WriteLine($"{json}");

Если вы действительно, действительно хотите избавиться от этих «лишних» фигурных скобок, просто преобразуйте результат в строку.

var jsonString = json.ToString();

Вышесказанное должно сделатьработа.

Я бы просто предложил вам изменить свой метод следующим образом: var json2 = NSJsonSerialization.Serialize(dictionary, NSJsonWritingOptions.PrettyPrinted, out error);

Использование опции PrettyPrinted .

Надеюсь, это поможет.-

0 голосов
/ 15 февраля 2019

Да, вы можете попытаться создать пользовательский объект для сериализации.Создайте простой простой объект для хранения нужных вам данных.

User user = new User() {
    UserName = "JohnDoe",
    Password = "xxx",
    CompanyId = 01
};
request.Body = NSJsonSerialization.Serialize(user, 0, out error);

Затем сериализуйте его, и вы увидите правильную форму JSON.

...