期待来自命名空间“”的元素 'root'.. 遇到名称为“”、命名空间为“”的 'None'
Expecting element 'root' from namespace ''.. Encountered 'None' with name '', namespace ''
过去 4 个小时我一直在寻找解决这个问题的方法,但我还没有找到解决方案。
我正在使用 .NET 构建 API,并希望解析从 API 调用发回的 JSON 信息。
我目前的做法如下:
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);
}
但我目前在指定的行收到异常。我已确保我的 class 实现了正确的序列化命名空间:
using System.Runtime.Serialization;
using System.IO;
using System.Runtime.Serialization.Json;
我正在尝试序列化的 class 已经相应地设置了它的 DataContract 和 Member 字段:
[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 客户端(例如 Postman)发出请求时,出现问题标题中所述的错误
我认为你标记了错误的变量,这个:
[DataMember]
private string _name;
public string player_name
应该是这样的:
private string _name;
[DataMember]
public string player_name
这个答案对我来说是一个非常严重的错误,但是对于那些以后遇到这种情况的人,请确保您通过 Raw 字段在 Postman 中发送您的 JSON 对象。就我而言,我只是做了:
{
"player_name": "Test",
"player_location": "EUW",
"player_wins":10,
"player_draws":10,
"player_losses":15,
"player_points":20
}
这修复了它
过去 4 个小时我一直在寻找解决这个问题的方法,但我还没有找到解决方案。
我正在使用 .NET 构建 API,并希望解析从 API 调用发回的 JSON 信息。
我目前的做法如下:
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);
}
但我目前在指定的行收到异常。我已确保我的 class 实现了正确的序列化命名空间:
using System.Runtime.Serialization;
using System.IO;
using System.Runtime.Serialization.Json;
我正在尝试序列化的 class 已经相应地设置了它的 DataContract 和 Member 字段:
[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 客户端(例如 Postman)发出请求时,出现问题标题中所述的错误
我认为你标记了错误的变量,这个:
[DataMember]
private string _name;
public string player_name
应该是这样的:
private string _name;
[DataMember]
public string player_name
这个答案对我来说是一个非常严重的错误,但是对于那些以后遇到这种情况的人,请确保您通过 Raw 字段在 Postman 中发送您的 JSON 对象。就我而言,我只是做了:
{
"player_name": "Test",
"player_location": "EUW",
"player_wins":10,
"player_draws":10,
"player_losses":15,
"player_points":20
}
这修复了它