【问题标题】:How read value from json with out using json.net如何在不使用 json.net 的情况下从 json 读取值
【发布时间】:2017-10-26 19:47:31
【问题描述】:

我收到了来自 web 服务的响应,如下所示

{
"header":    {
  "sourceId": "1002",
  "mndAction": "CREATE",
  "msgId": "msg10022",
  "errMsg": null,
  "txnStatusFlg": "1",
  "successMsg": "SUCCESS"
},
"response": {"responseString": "Required Data"}
}

我想从上面的json数据中获取responseString的值。

为了响应

{"Status":"success","DocRepoId":225,"Details":"success",
"ErrorCode":"","responseString": "Required Data"}

我使用了代码

 var deserializer = new JavaScriptSerializer();
 var someObject = deserializer.Deserialize<Dictionary<string, string>>
 (response);     
 string responseString= someObject["responseString"].ToString();

获取 responseString 的值,但在这种情况下它显示错误。 我正在寻找不使用 json.net 或类似的解决方案。 我的项目在 .net 版本 3.5 上。

【问题讨论】:

  • 所以我会使用 Newtonsoft.Json - 使用 Nuget-Installer 安装它并以这种方式反序列化它 RootObject r = JsonConvert.DeserializeObject&lt;RootObject&gt;(json);
  • 一种方法是创建具有该结构的对象并使用 deserializer.Deserialize(json)。
  • @LenglBoy OP 专门说不使用 JSON 或类似的
  • @LenglBoy 感谢您的快速响应,但我无法使用 newtonsoft.json 或 json.net
  • @o_O 哦,我以为只有 json.NET。为什么不使用包含在.NET 中的普通微软方式呢?比其他 Libs 稍微复杂一点,但可以工作。或者为这个简短的 json 构建一个自己的序列化器。

标签: c# asp.net json


【解决方案1】:

这是我在评论中告诉你的一个例子。

使用此类:

    class Test
    {
        public Response Response { get; set; }
    }

    class Response
    {
        public string ResponseString { get; set; }
    }

你可以用这段代码得到你想要的:

        JavaScriptSerializer s = new JavaScriptSerializer();

        string json = @"{
            ""header"":    {
                                ""sourceId"": ""1002"",
              ""mndAction"": ""CREATE"",
              ""msgId"": ""msg10022"",
              ""errMsg"": null,
              ""txnStatusFlg"": ""1"",
              ""successMsg"": ""SUCCESS""
                            },
            ""response"": { ""responseString"": ""Required Data""}
                        }";


        Test t = s.Deserialize<Test>(json);

        var responseString = t.Response.ResponseString;

【讨论】:

  • 你拯救了我的一天
  • 不错。忘记了 s 声明,但你明白了 :)
猜你喜欢
  • 1970-01-01
  • 2019-08-01
  • 2015-08-30
  • 1970-01-01
  • 1970-01-01
  • 2012-03-23
  • 1970-01-01
  • 2021-07-22
相关资源
最近更新 更多