从Rest API检索JSON时,JsonConvert.DeserializeObject抛出异常

时间:2016-01-27 16:54:34

标签: c# json node.js

我有一个我无法解决的问题。我有一个nodejs服务器,可以通过REST API发送一个简单的json。

var filename = 'latestVersion.json';
fs.readFile(filename, 'utf8', function (err, data) {
     if (err) throw err;        
     filejson = JSON.parse(data.toString('utf8').replace(/^\uFEFF/, ''));
     res.json(data);
});
然后我在我的C#应用​​程序中检索json:

class AppVersion
{
   public int major { get; set; }
   public int minor { get; set; }
   public int build { get; set; }
}

HttpWebRequest http = (HttpWebRequest)HttpWebRequest.Create(new Uri(url));
HttpWebResponse response = (HttpWebResponse)http.GetResponse();
string versionString = null;
using(System.IO.StreamReader sr = new System.IO.StreamReader(response.GetResponseStream()))
{
   versionString = sr.ReadToEnd();
}
if(versionString != null)
{
   AppVersion test = new AppVersion() { major = 1, minor = 1, build = 1 };
   string testStr = JsonConvert.SerializeObject(test);
   var j = JsonConvert.DeserializeObject<AppVersion>(versionString);
}

然后在反序列化时出现异常“无法转换或转换....”。但是,如果我使用testStr一切顺利。然后我看着琴弦,发现了这个:

testStr = "{\"major\":1,\"minor\":1,\"build\":1}"
versionString = "\"{\\\"major\\\": 1, \\\"minor\\\": 1, \\\"build\\\": 1}\""

更奇怪的是,我尝试手动编辑versionString删除额外的转义字符,但仍然出现错误(JSON可视化工具表示格式错误)。

解决这个问题的任何线索?

0 个答案:

没有答案