gpt4 book ai didi

c# - 在 Windows Phone 中使用 DataContractJsonSerializer 将 JSON 反序列化为字典

转载 作者:太空宇宙 更新时间:2023-11-03 16:17:46 25 4
gpt4 key购买 nike

我有一个json字符串,例如

{"timestamp":1362463455, "features" : {"one":true, "two":false}}

我想用 DataContractJsonSerializer 反序列化它到我的类(class):

[DataContract]
public class MyClass
{
[DataMember(Name = "timestamp")]
public int Timestamp { get; set; }

[DataMember(Name = "features")]
public Dictionary<string, bool> Features { get; set; }
}

但是我在处理过程中出错"ArgumentException" .我有反序列化问题 Dictionary ,如果只反序列化时间戳,那么我没有错误。我认为这是字典最适合的结构。但它不起作用。我检查了 this answer on SO ,但是 Dictionary<string, object>也不要工作。可能是因为在示例中使用:

DataContractJsonSerializerSettings settings =
new DataContractJsonSerializerSettings();
settings.UseSimpleDictionaryFormat = true;

但我不能使用DataContractJsonSerializerSettings在 Windows Phone 中。

抱歉,如果我的问题是双重的。

提前致谢。

最佳答案

@亚历山大

我正在为您编写代码,它将帮助您将对象从 json 反序列化为您的 ClassCustomObject。

private async Task<List<MyClass>> MyDeserializerFunAsync()
{
List<MyClass> book = new List<MyClass>();
try
{
//I am taking my url from appsettings. myKey is my appsetting key. You can write direct your url.
string url = (string)appSettings["mykey"];
var request = HttpWebRequest.Create(url) as HttpWebRequest;
request.Accept = "application/json;odata=verbose";
var factory = new TaskFactory();
var task = factory.FromAsync<WebResponse>(request.BeginGetResponse,request.EndGetResponse, null);
var response = await task;
Stream responseStream = response.GetResponseStream();
string data;
using (var reader = new System.IO.StreamReader(responseStream))
{
data = reader.ReadToEnd();
}
responseStream.Close();
DataContractJsonSerializer json = new DataContractJsonSerializer(typeof(List<MyClass>));
MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(data));
book = (List<MyClass>)json.ReadObject(ms);
return book;
}
}

以上代码在我的 wp8 应用程序中运行,您可以尝试更快,它会对您有所帮助。我正在执行异步操作,但您可以使用 MyClass 返回类型创建您的简单方法。

关于c# - 在 Windows Phone 中使用 DataContractJsonSerializer 将 JSON 反序列化为字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15218007/

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