首页 > 解决方案 > 解码 json 对象以使其值无法正常工作?

问题描述

我遇到了一个问题,我试图解码 json 对象以获取它的值,但由于某种原因它仍然得到我的 json 对象,即{"name": "mike"}. 我想要实现的只是获得 Mike 的价值。下面的代码是否有解决方法。我正在使用名为 Newtonsoft.Json 的库。感谢您的帮助。 请注意,json 对象来自 QR 码。

这是我的代码:

    public void CheckUserInDb()
    {
        var httpWebRequest = (HttpWebRequest) WebRequest.Create("https://PROJECT_URL.firebaseio.com/QR.json");
        httpWebRequest.ContentType = "application/json";
        httpWebRequest.Method = "PUT";

       using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))
      {


         string missingObjectCount = statusText.text;
         dynamic results = JsonConvert.DeserializeObject <dynamic>(missingObjectCount);
         var name = results.ToString();
         streamWriter.Write(name);


   // Another way I tried. 
//          var result = JsonConvert.DeserializeObject<dynamic>(statusText.text);
//            var gettingTheName = result.name;
//             streamWriter.Write(gettingTheName);

      }


       var httpResponse = (HttpWebResponse) httpWebRequest.GetResponse();
        using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
        {
            var result = streamReader.ReadToEnd();
            Debug.Log(result);
        }

        SceneManager.LoadScene("Verify");

   }

标签: c#jsonjson.net

解决方案


你已经完成了大部分艰苦的工作。result.Name 的类型为Newtonsoft.Json.Linq.JValue。您只需使用JValue.Value属性从中获取值

var result = JsonConvert.DeserializeObject<dynamic>(statusText.text);
var gettingTheName = (string)result.name.Value; // Change here

推荐阅读