我将反序列化的json文件的结构如下所示;
{
"id" : "1lad07",
"text" : "test",
"url" : "http:\/\/twitpic.com\/1lacuz",
"width" : 220,
"height" : 84,
"size" : 8722,
"type" : "png",
"timestamp" : "Wed, 05 May 2010 16:11:48 +0000",
"user" : {
"id" : 12345,
"screen_name" : "twitpicuser"
}
}
我创建了一个类,该类具有文件名作为JavaScriptSerializer的属性。我将用于反序列化json的代码如下;
```
using (var reader = new StreamReader(twitpicResponse.GetResponseStream())) {
var responseBody = reader.ReadToEnd();
var deserializer = new JavaScriptSerializer();
var results = deserializer.Deserialize<Response>(responseBody);
}
我的问题是如何读取json文件中的用户字段。如下所示;
"user" : {
"id" : 12345,
"screen_name" : "twitpicuser"
}
它具有子属性和值。如何在我的Response类中为它们命名。我的回应类别现在看起来像这样;
public class Response {
public string id { get; set; }
public string text { get; set; }
public string url { get; set; }
public string width { get; set; }
public string height { get; set; }
public string size { get; set; }
public string type { get; set; }
public string timestamp { get; set; }
}
```
最好的情况是什么?
User
。User
。 public class Response {
public string id { get; set; }
public string text { get; set; }
public string url { get; set; }
public string width { get; set; }
public string height { get; set; }
public string size { get; set; }
public string type { get; set; }
public string timestamp { get; set; }
public User user { get; set; }
}
public class User {
public int id { get; set; }
public string screen_name { get; set; }
}
通常,您应该确保json的属性类型与CLR类匹配。
您尝试反序列化的结构似乎包含多个数字值(很可能是int
)。我不确定JavaScriptSerializer
能否将数字反序列化为字符串字段,但是无论如何,您都应尝试使CLR类型尽可能接近实际数据。
问题内容: 显然,被序列化为对象数组(例如)。是否可以将其序列化为一个对象(例如)? 问题答案: 尽管我同意JavaScriptSerializer是胡扯,而Json.Net是更好的选择,但是您可以通过一种方法使JavaScriptSerializer序列化所需的方式。您将必须注册一个转换器,并使用如下方法覆盖Serialize方法: 希望这可以帮助!
问题内容: 我是C ++的新手。使用序列化和反序列化类型数据的最简单方法是什么。我发现了一些使用示例,但它们对我来说是晦涩的。 问题答案: 请注意,将键解释为路径,例如,将对“ ab” =“ z”放置将创建{“ a”:{“ b”:“ z”}} JSON,而不是{“ ab”:“ z”} 。否则,使用是微不足道的。这是一个小例子。
问题内容: 我正在使用JavaScriptSerializer将对象序列化到文件为JSON格式。但是结果文件没有可读的格式。如何允许格式化以获取可读文件? 问题答案: 似乎没有内置的工具可以格式化JSON-serializer的输出。 我认为发生这种情况的原因是使我们通过网络发送的数据最少。 您确定需要代码中的格式化数据吗?还是只想在调试期间分析JSON? 有很多的在线服务,提供这样的功能:1,2
问题内容: 我在反序列化以下json数组时遇到麻烦(对不起,大小): 如果将其粘贴到json-viewer中,则会得到以下结构: 现在,包含具有坐标的数组的数组具有可变大小。所以我想在Java中,整个对象应该是一个数组,其中包含数组的集合,每个数组都包含一个。就像是 但是gson不接受这一点。我收到以下错误消息: 这似乎很奇怪,因为对我来说好像不像一个数组。但这可能使我感到困惑,或多或少地迷路了…
我收到来自第3方服务提供商的JSON响应,其中包含一系列对象。当我尝试使用Jackson api反序列化JSON时。我收到以下异常 我的回答是 我的POJO课是这样的 我正在尝试使用以下代码反序列化JSON 如果我试着去做 它在BEGIN_对象本身失败。 如何使用数组读取和反序列化JSON。我应该编写自己的反序列化器吗? 编辑如果我使用JSON字符串而不是流,那么我就能够取回所有Java对象。但为
我目前正在开发一个Java web应用程序,它使用Magento REST API公开的JSON数据。api返回的数据示例如下: 我的应用程序中有一个Java类,如下所示: 我想对数据进行反序列化,并将其转换为,但我总是得到以下错误: 这是我用来将JSON响应反序列化为ArrayList的语句行: 有人能分享一些见解吗?我看到一些例子,返回的JSON对象前面没有任何ID。那是因为我做错了什么吗?非