用JSON.net压缩成一个对象

时间:2016-09-05 06:33:13

标签: c# json json.net

我正在使用带有以下

示例输出的API
{
        "id": 12345678

        "photo-url-1280": "http://68.media.tumblr.com/5076e813bdc463409f59172b2c152487/tumblr_ocy8peMYvo1uur5s9o1_1280.png",
        "photo-url-500": "http://67.media.tumblr.com/5076e813bdc463409f59172b2c152487/tumblr_ocy8peMYvo1uur5s9o1_500.png",
        "photo-url-400": "http://68.media.tumblr.com/5076e813bdc463409f59172b2c152487/tumblr_ocy8peMYvo1uur5s9o1_400.png",
        "photo-url-250": "http://67.media.tumblr.com/5076e813bdc463409f59172b2c152487/tumblr_ocy8peMYvo1uur5s9o1_250.png",
        "photo-url-100": "http://67.media.tumblr.com/5076e813bdc463409f59172b2c152487/tumblr_ocy8peMYvo1uur5s9o1_100.png",
        "photo-url-75": "http://67.media.tumblr.com/5076e813bdc463409f59172b2c152487/tumblr_ocy8peMYvo1uur5s9o1_75sq.png",
}

那些最后的项目非常相关,所以我想将它们移动到自己的对象中。

到目前为止,获取指定的图像会非常混乱。获得400px版本可能如下所示 -

myPhotoObject.Photo400

但是,如果我能够将这些URL移动到他们自己的对象中,我可以更加干净地将其称为:

myPhotoObject.Photo.400

甚至引入更友好的方法

myPhoto.Photo.GetClosestTo(451);

此处的网址中有一种模式 - 在_个字符后,会显示标识尺寸,例如..._1280.png..._500.png

获取这些内容的最佳方法是编写一个getter属性,只是将已知大小的列表附加到URL吗?这种方式比纯粹使用JSON.net转换器更有效率吗?

1 个答案:

答案 0 :(得分:0)

我建议首先将您的JSON解析为字典,如here所述,然后手动将其复制到更结构化的对象:

<asp:UpdatePanel ID="UpdatePanel1" runat="server">
  <ContentTemplate>
    <asp:Timer ID="Timer1" runat="server" Interval="1000"></asp:Timer>
     <h3 class="bp-header__title">Time :         <font color="red" size="4px"><asp:Label ID="lbl_Time" runat="server" Text="Label" Font-Bold="false" Font-Names="Digital-7 Mono"></asp:Label></font></h3><br />
  </ContentTemplate>
</asp:UpdatePanel>