美文网首页程序员Android开发Android技术知识
一起撸个朋友圈吧(step2) - 数据结构(JSON结构)【下

一起撸个朋友圈吧(step2) - 数据结构(JSON结构)【下

作者: Razerdp | 来源:发表于2016-02-14 12:23 被阅读1373次

    项目地址:https://github.com/razerdp/FriendCircle
    一起撸个朋友圈吧这是本文所处文集,所有更新都会在这个文集里面哦,欢迎关注

    上篇链接:http://www.jianshu.com/p/94403e45fbef
    下篇链接:http://www.jianshu.com/p/720d5a7c75a7

    在上篇,我们弄出了一张结构图,这一篇稍微无聊,我们就对着结构图把朋友圈的JSON字符串模拟出来
    ps:图片什么的,都来自网络


    结构图

    开始之前,先针对一些常量进行定义:

    • 所有的布尔值采用0,1来定量
    • id全部解析为long值
    • 关于动态类型:
      • 纯文字动态值为:【10】
      • 图文动态值为:【11】
      • 小视频,虽然暂时不做,但也预留定义值为:【12】
      • 网页分享值为:【13】
      • 广告,目前忽略,预留值:【14】

    那么下面开工吧,JSON的编辑我们可以随便上网找到json online编辑器,这里就不详述了。

    首先定义一下我们的根节点value:

    根节点

    我们的根节点包含的是一般请求拥有的东西,比如状态码,时间戳什么的,

    在根节点我们还需要设有startloadmore这两个值,这两个值涉及到客户端分页识别。

    同时还需要有朋友圈拥有者的信息,具体的说就是有id,头像,朋友圈封面等。


    接下来我们定义我们的数据内容部分:

    首先插入一个json array,然后根据导图定义我们每一个的object

    先定义我们共有的部分,结构如下:

    大致结构

    array存的是请求一定数量的动态,可以看到,我们的第1个object存的是我们共有数据,展开图如下:


    展开图

    其中我们可以看到user相关的其实重复性很大,解析的时候跟hostInfo可以共用一个bean,所以看起来很多个bean,实际上都是可以复用的。
    接下来看看点赞列表和评论列表的展开图

    点赞列表 评论列表

    点赞列表内容忽略,只是简单的记录用户信息

    而评论列表内容则需要注意的是用户B(被回复者)是否为空的问题:

    • 用户B为空,则证明这是一条创建评论,即对朋友圈的评论
    • 用户B不为空,则证明这是一条回复评论,即对用户的评论创建的评论,此时用户B应是创建评论的那位。(界面上展示为:A 回复 B:xxxx)

    共有的数据就是以上的这些,下面就是非共有数据,此处展示图文混编类型,需要注意的是,这里的数据必须要跟动态类型相对应,在客户端会识别出类型然后对应载入数据,如果这里没有对应,极有可能会有NPE(空引用)崩溃


    非共有部分:

    非共有

    我们用一个object装起来,在本地解析的时候,这个object内容应有所有类型的,比如图片就是一个List<String> imgs,网页就是一个bean,这样我们就不需要管具体的解析,只需要管理这个bean里面的对象是否为空就好(用的GSON解析)

    至此,我们的JSON大致就是这样,这一篇仅仅弄了一条朋友圈,一条朋友圈就有这么多的信息,如果是商业用,建议压缩一下。

    ps:本项目大概需要用100条各种各样类型的,待我整理好后发布到git上。
    ps2:春节假期就快结束了,初八就要上班去了,可以静下心来整理所学知识的时间没有连续的一块空间了(栈←_←),所以更新可能会慢,但在撸出朋友圈之前,在下是不会放弃的-V-


    附录(本篇JSON数据):

    {
      "hostInfo": {
        "hostAvatar": "http://img5.duitang.com/uploads/item/201406/26/20140626190424_TCXuP.jpeg",
        "hostId": 1001,
        "hostNick": "羽翼君",
        "hostWallPic": "http://b.zol-img.com.cn/desk/bizhi/image/7/1366x768/1454549752274.jpg"
      },
      "moments": [
        {
          "userInfo": {
            "userAvatar": "http://img4.duitang.com/uploads/item/201409/12/20140912142254_53fUf.thumb.700_0.jpeg",
            "userId": 1002,
            "userNick": "简简"
          },
          "dynamicInfo": {
            "hasPraised": 0,
            "dynamicId": 1,
            "canDelete": 0,
            "type": 11,
            "createTime": 1455420309
          },
          "textField": "这是第一条图文混编朋友圈哦",
          "praiseList": [
            {
              "userId": 10010,
              "userNick": "拉拉"
            },
            {
              "userId": 10011,
              "userNick": "帕帕"
            },
            {
              "userId": 10012,
              "userNick": "咔咔"
            }
          ],
          "commentList": [
            {
              "content": "这是第一条评论哦",
              "id": 2001,
              "canDelete": 0,
              "userA": {
                "userId": 10010,
                "userNick": "拉拉"
              }
            },
            {
              "content": "拉拉你好,我是帕帕 -V-",
              "id": 2002,
              "canDelete": 0,
              "userA": {
                "userId": 10011,
                "userNick": "帕帕"
              },
              "userB": {
                "userId": 10010,
                "userNick": "拉拉"
              }
            },
            {
              "content": "我是咔咔,这是一条非回复评论",
              "id": 2003,
              "canDelete": 0,
              "userA": {
                "userId": 10012,
                "userNick": "咔咔"
              }
            }
          ],
          "content": {
            "imgs": [
              "http://tupian.qqjay.com/u/2013/1127/19_222949_14.jpg",
              "http://tupian.qqjay.com/u/2013/1127/19_222949_3.jpg",
              "http://tupian.qqjay.com/u/2013/1127/19_222949_4.jpg"
            ]
          }
        }
      ],
      "errStr": "请检查网络配置",
      "loadMore": 1,
      "requestTime": 1455420309,
      "requestcode": 200,
      "start": 0
    }
    

    相关文章

      网友评论

        本文标题:一起撸个朋友圈吧(step2) - 数据结构(JSON结构)【下

        本文链接:https://www.haomeiwen.com/subject/ulzukttx.html