开发者社区> 问答> 正文

有关于c# JToken 和 Java JsonNode 对应关系问题

 public virtual BlockObject parse(JsonNode obj)
        {
            blockIdx = obj.path("blockIdx").asInt(0);
            start = obj.path("start").asLong(0);
            offset = obj.path("offset").asLong(0);
            blockLen = obj.path("blockLen").asInt(0);
            lastCtx = (obj.path("ctx").asText() == null ? "" : obj.path("ctx").asText());
            return this;
        }

上面这一段对JsonNode的解析如果换成JToken要怎么写?

展开
收起
爵霸 2016-03-05 09:38:25 2949 0
1 条回答
写回答
取消 提交回答
  • json 数据

    {
        "blockIdx": 31,
        "start": "1234567890123456",
        "offset": "12345678901234",
        "blockLen": 1024,
        "ctx": "context"
    }

    BlockObject 结构

    class BlockObject
    {
        public int BlockIdx { get; set; }
        public long Start { get; set; }
        public long Offset { get; set; }
        public int BlockLen { get; set; }
    
        [JsonProperty("ctx")]
        public string LastCtx { get; set; }
    }

    比较贴近的翻译

    static BlockObject Parse(JToken jo)
    {
        return new BlockObject
        {
            BlockIdx = jo.Value<int>("blockIdx"),
            Start = jo.Value<long>("start"),
            Offset = jo.Value<long>("offset"),
            BlockLen = jo.Value<int>("blockLen"),
            LastCtx = jo.Value<string>("ctx")
        };
    }

    简单的办法

    static BlockObject Parse(JToken jo)
    {
        return jo.ToObject<BlockObject>();
    }
    2019-07-17 18:52:56
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Java Your(Next) 立即下载
Java 8 简明教程 立即下载
Java高级特性入门(二) 立即下载