2017-06-29 157 views
3

我正在使用.NET Core for Linux作为控制台程序。 使用Http功能我得到了一些来自Web服务的信息。 然后我试图将结果转换为对象,但我无法使用JSON。如何使用JSON .NET CORE

我读this article但我没有找到任何例子,我没有JavaScriptSerializer

public async void CallApi(Object stateInfo) 
    { 
     var client = new HttpClient(); 
     var requestContent = new FormUrlEncodedContent(new[] { new KeyValuePair<string, string>("pair", "XETHZEUR"), }); 
     HttpResponseMessage response = await client.PostAsync("https://api.kraken.com/0/public/Trades", requestContent); 
     HttpContent responseContent = response.Content; 
     using (var reader = new StreamReader(await responseContent.ReadAsStreamAsync())) 
     { 
      String result = await reader.ReadToEndAsync(); 
      //Here I would like to do a deserialized of my variable result using JSON (JObject obj = (JObject)JsonConvert.DeserializeObject(result);) But I don't find any JSON object 
     } 
    } 

编辑 访问,我想知道我怎么可以使用JSON转换我的变量结果到像我通常与c#一样的对象:

 JObject obj = (JObject)JsonConvert.DeserializeObject(result); 

我希望你能帮助我。

非常感谢,

+0

到底是什么问题? –

+0

对不起,我错过了。 我的问题是: 如何将我的变量结果转换为使用JSONConvert的对象 – eldondano

+0

您是否使用visual studio?它的哪个版本?基于.NET Core项目的project.json或csproj? –

回答

0

你只需要某种依赖的是可用于.NET的核心,它可以帮助你反序列化JSON。

Newtonsoft.Json是事实上的标准,并提供在.NET中的核心,为了使用它,你必须将它添加到您的project.json文件

"dependencies" { 
... 
"Newtonsoft.Json": "10.0.3" 
}, 

适当using语句在类

using Newtonsoft.Json 

然后你可以使用反序列化JsonConvert.DeserializeObject(json);

public async void CallApi(Object stateInfo) 
{ 
    var client = new HttpClient(); 
    var requestContent = new FormUrlEncodedContent(new[] { new KeyValuePair<string, string>("pair", "XETHZEUR"), }); 
    HttpResponseMessage response = await client.PostAsync("https://api.kraken.com/0/public/Trades", requestContent); 
    HttpContent responseContent = response.Content; 
    using (var reader = new StreamReader(await responseContent.ReadAsStreamAsync())) 
    { 
     String result = await reader.ReadToEndAsync(); 
     //Here I would like to do a JSON Convert of my variable result 
     var yourObject = JsonConvert.DeserializeObject(result); 
    } 
} 
+0

感谢您的回答。但是,当我尝试添加这个依赖关系时,我有以下错误消息: 无法找到类型或名称空间名称'Newtonsoft'(您是否缺少using指令或程序集引用?)\t NETCoreTest..NETCoreApp,Version = v1。 0 And 无法解析依赖项Newtonsoft.Json> = 10.0.3 – eldondano

+0

您是否在project.json中添加了依赖项?错误消息表示存在问题。如果是这样,请在控制台中尝试'$ dotnet restore'。或者简单地查看如何将.net核心包添加到.net核心。 – pijemcolu

+0

如何添加块金包:http://ardalis.com/how-to-add-a-nuget-package-using-dotnet-add – pijemcolu