gpt4 book ai didi

c# - 在处理程序中将 Json 反序列化为 Object

转载 作者:行者123 更新时间:2023-11-30 15:36:03 24 4
gpt4 key购买 nike

我有一个简单的类:

public class site
{
public string URL { get; set; }
}

它存在于 http 处理程序中。目前我正在将 json 发布到此处理程序并尝试反序列化它以从字符串中获取 URL。然而,我在反序列化部分遇到了问题。

我有一个字符串“jsonString”,它的 json 格式如下:

[{"URL":"http://www.google.com/etc/"}]

这是我的反序列化代码:

JavaScriptSerializer jsonSerializer = new JavaScriptSerializer();

string jsonString = String.Empty;

HttpContext.Current.Request.InputStream.Position = 0;
using (StreamReader inputStream = new StreamReader(HttpContext.Current.Request.InputStream))
{
jsonString = inputStream.ReadToEnd();
}

site currSite = new site();
currSite = jsonSerializer.Deserialize<site>(jsonString);

//set response types
HttpContext.Current.Response.ContentType = "application/json";
HttpContext.Current.Response.ContentEncoding = Encoding.UTF8;


//send response
HttpContext.Current.Response.Write(jsonSerializer.Serialize(currSite.URL));

然后我尝试使用 currSite.URL 发送响应,但它失败了。我在这里错过了什么?我有理由相信它在反序列化部分,因为如果我发送 jsonString 的响应而不是 currSite.URL,它将起作用。

最佳答案

您的 json 字符串表明它是一个数组,而不是单个实体。你应该反序列化它:

var result = jsonSerializer.Deserialize<site[]>(jsonString);

result[0].Url 应该包含您要查找的内容。

更新

添加示例代码:

 string json = @"[{""URL"":""http://www.google.com/etc/""}]";

JavaScriptSerializer js = new JavaScriptSerializer();
var result = js.Deserialize<site[]>(json);
Console.WriteLine(result[0].URL);

打印: http://www.google.com/etc/

关于c# - 在处理程序中将 Json 反序列化为 Object,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14160768/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com