相关疑难解决方法(0)

如何使用JSON.net处理同一属性的单个项目和数组

我正在尝试修复我的SendGridPlus库来处理SendGrid事件,但是我在API中对类别的处理方式不一致时遇到了一些麻烦.

在以下示例从SendGrid API引用获取的有效内容中,您会注意到category每个项的属性可以是单个字符串,也可以是字符串数组.

[
  {
    "email": "john.doe@sendgrid.com",
    "timestamp": 1337966815,
    "category": [
      "newuser",
      "transactional"
    ],
    "event": "open"
  },
  {
    "email": "jane.doe@sendgrid.com",
    "timestamp": 1337966815,
    "category": "olduser",
    "event": "open"
  }
]
Run Code Online (Sandbox Code Playgroud)

看起来像我这样制作JSON.NET的选择是在字符串进入之前修复字符串,或者配置JSON.NET以接受不正确的数据.如果我能逃脱它,我宁愿不做任何字符串解析.

有没有其他方法我可以使用Json.Net处理这个?

json.net sendgrid

82
推荐指数
3
解决办法
3万
查看次数

有时数组和有时反对时反序列化JSON

我在使用JSON.NET库对从Facebook返回的数据进行反序列化时遇到了一些麻烦.

从简单的墙贴文件返回的JSON看起来像:

{
    "attachment":{"description":""},
    "permalink":"http://www.facebook.com/permalink.php?story_fbid=123456789"
}
Run Code Online (Sandbox Code Playgroud)

为照片返回的JSON如下所示:

"attachment":{
        "media":[
            {
                "href":"http://www.facebook.com/photo.php?fbid=12345",
                "alt":"",
                "type":"photo",
                "src":"http://photos-b.ak.fbcdn.net/hphotos-ak-ash1/12345_s.jpg",
                "photo":{"aid":"1234","pid":"1234","fbid":"1234","owner":"1234","index":"12","width":"720","height":"482"}}
        ],
Run Code Online (Sandbox Code Playgroud)

一切都很好,我没有问题.我现在遇到一个来自移动客户端的简单墙帖,其中包含以下JSON,现在反序列化失败,只有一个帖子:

"attachment":
    {
        "media":{},
        "name":"",
        "caption":"",
        "description":"",
        "properties":{},
        "icon":"http://www.facebook.com/images/icons/mobile_app.gif",
        "fb_object_type":""
    },
"permalink":"http://www.facebook.com/1234"
Run Code Online (Sandbox Code Playgroud)

这是我反序列化的类:

public class FacebookAttachment
    {
        public string Name { get; set; }
        public string Description { get; set; }
        public string Href { get; set; }
        public FacebookPostType Fb_Object_Type { get; set; }
        public string Fb_Object_Id { get; set; }

        [JsonConverter(typeof(FacebookMediaJsonConverter))]
        public List<FacebookMedia> { get; set; }

        public string Permalink { get; …
Run Code Online (Sandbox Code Playgroud)

c# json json.net facebook-c#-sdk json-deserialization

47
推荐指数
4
解决办法
3万
查看次数

杰克逊反序列化对象或数组

我有一个杰克逊问题.

有没有办法反序列化可能有两种类型的属性,对于某些对象,它看起来像这样

"someObj" : { "obj1" : 5, etc....}
Run Code Online (Sandbox Code Playgroud)

然后对于其他人来说,它看起来像一个空数组,即

"someObj" : []
Run Code Online (Sandbox Code Playgroud)

任何帮助表示赞赏!

谢谢!

java json jackson

14
推荐指数
2
解决办法
2万
查看次数