3

Я искал последние 4 часа для способов решения этой проблемы, и у меня нет но нашел решение.Ожидающий элемент 'root' из пространства имен '' .. Encountered 'None' с именем '', namespace ''

Я создаю API с .NET и хочу разобрать информацию JSON, которая отправляется обратно из вызовов API.

Мой текущий подход делает следующее:

private void PostNewPlayer(HttpContext context) 
{ 
    // Create the serializer 
    context.Request.InputStream.Position = 0; 

    DataContractJsonSerializer json = new DataContractJsonSerializer(typeof(ASPlayer)); 
    ASPlayer p = (ASPlayer)json.ReadObject(context.Request.InputStream); <-- Exception here 
    Int32 playerId = ASPlayerManager.InsertNewPlayer(p); 
} 

Но я в настоящее время получаю исключение в указанной строке. Я сделал, что мой класс реализует правильные пространства имен сериализации:

using System.Runtime.Serialization; 
using System.IO; 
using System.Runtime.Serialization.Json; 

Класса Я пытаюсь сериализация был его DataContract и члены поля устанавливается соответственно:

[DataContract] 
public class ASPlayer 
{ 
    [DataMember] 
    private string _name; 
    public string player_name 
    { 
     get { return _name; } 
     set { _name = value; } 
    } 

    [DataMember] 
    private string _location; 
    public string player_location 
    { 
     get { return _location; } 
     set { _location = value; } 
    } 

    // Other vars 
    ... 

    public ASPlayer(string name, string location) 
    { 
     _name = name; 
     _location = location; 
    } 
} 

Однако, когда я использую HTTP клиент, такие как Почтальон, чтобы сделать запрос, я получаю ошибку, указанную в названии вопроса

enter image description here

+0

В отличие от сайтов форума, мы не используем «Спасибо» или «Любая помощь приветствуется», или подписи на [так]. См. «[Должны ли« Привет »,« спасибо », теги и приветствия удалены из сообщений?] (Http://meta.stackexchange.com/questions/2950/should-hi-thanks-taglines-and-salutations-be –

ответ

-1

Ответ был очень плохой ошибкой с моей стороны, но и для тех, кто сталкивается с этим в будущем убедитесь, что вы посылаете объект JSON в Почтальон через поле Raw. В моем случае я просто сделал:

{ 
    "player_name": "Test", 
    "player_location": "EUW", 
    "player_wins":10, 
    "player_draws":10, 
    "player_losses":15, 
    "player_points":20 
} 

Это зафиксировал его

2

Я думаю, что вы отметили wron г переменных, это:

[DataMember] 
private string _name; 
public string player_name 

должен быть таким:

private string _name; 
[DataMember] 
public string player_name 
+0

Привет, спасибо за предложение. Я пробовал обозначать переменные в обоих направлениях и до сих пор не повезло :(Любые другие идеи? – Alex

+0

Это поможет, если вы разместите свой JSON – thumbmunkeys

+0

, я думаю, что я только что заметил что я сделал неправильно. Я отправляю параметры в заголовок, я должен публиковать json-объект. – Alex

 Смежные вопросы

  • Нет связанных вопросов^_^