首页 > c# JToken 和 Java JsonNode 对应关系

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要怎么写?


您用的IDE是VS吗?


准备

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>();
}

【热门文章】
【热门文章】