在C#中解码JSON字符串

时间:2017-12-21 07:00:08

标签: c# json xamarin

我正在尝试在xamarin跨平台应用中解码以下字符串

{"body":"test","time":"2017-12-20 14:09:16","type":0}

除非我找不到有效的教程......

我尝试使用NewtonSoft.Json,但无法下载并说

  

安装失败。滚回来...   软件包' Microsoft.CSharp.4.3.0'在项目' SocialNetwork.iOS'中不存在   删除软件包' Microsoft.CSharp.4.3.0'来自文件夹' C:\ Users \ snip \ source \ repos \ SocialMedia \ packages'   删除了包' Microsoft.CSharp.4.3.0'来自文件夹' C:\ Users \ snip \ source \ repos \ SocialMedia \ packages'   执行nuget动作需要2.86秒   无法添加引用。软件包' Microsoft.CSharp'试图将一个框架引用添加到' Microsoft.CSharp'这在GAC中找不到。这可能是包中的错误。请联系包裹所有者寻求帮助。     参考不可用。   经过的时间:00:00:21.6604873

2 个答案:

答案 0 :(得分:0)

您也可以使用JavaScriptSerializer(System.Web.Extensions.dll)。

您可以使用此课程:

    public class Response
{
    public string body { get; set; }
    public string time { get; set; }
    public int type { get; set; }
}

这是一个如何使用它的例子。

    public void Method(string json)
{
    JavaScriptSerializer js = new JavaScriptSerializer();

    Response response = js.Deserialize<Response>(json); 
}

答案 1 :(得分:0)

我不太清楚,但我可以提出一个主意。首先我想,您必须从项目中卸载Newtonsoft.Json包并安装另一个版本。

  1. 右键单击您的项目并转到Manage NuGet Packages
  2. 单击Unistall for NewtonSoft.Json包。
  3. 现在,选择另一个版本到Newtonsoft.Json。(例如版本6.0.4)
  4. 选择6.0.4版本并安装。
  5. 转到项目的packages.config。
  6. 检查Newtonsoft.Json的版本。
  7. 现在我们必须使用Newtonsoft.Json

    将字符串转换为Json
    string str = "yourString";               
    
    JObject JsonResult = JObject.Parse(str);
    string body = JsonResult["body"].Value<string>();
    int type = JsonResult["type"].Value<int>();
    

    如果你不能这样做。检查此链接。也许这会对你有所帮助: https://stackoverflow.com/a/22870885/4289550