原文地址:https://stackoverflow.com/questions/38558844/jcontainer-jobject-jtoken-and-linq-confusion/38560188#38560188?newreg=577582085c60496db7bdb78be26a2313

JToken的层次结构是这样的:

JToken          -抽象基类
  JContainer     - 能够包含其它JToken的JToken抽象基类
    JArray     - 表示一个JSON数组(包含一个有序的List<JToken>)
    JObeject      - 表示一个JSON对象(包含一个IEnumerable<JProperty>)
    JProperty     - 表示一个JSON属性(在JObject中是一个name/JToken键值对)
  JValue       - 表示一个原生JSON值(string,number,boolean,null)

以下是几条基本的经验法则:

  • 如果是一个对象(在JSON里是有大括号“{”和“}”来标识的),就用JObject。
  • 如果是一个数组或集合(用中括号“[”和“]”标识的),就用JArray。
  • 如果是原生值,就用JValue。
  • 如果你不知道你的json是什么类型的token,或者你希望用一种通用的方式来处理上面任意一种类型的对象,就用JToken,然后你可以检查它的Type属性来决定是哪种类型的token,并把它转化成相应的类型。

(译)JToken的层次结构的更多相关文章

  1. Model-View-ViewModel for iOS [译]

    如果你已经开发一段时间的iOS应用,你一定听说过Model-View-Controller, 即MVC.MVC是构建iOS app的标准模式.然而,最近我已经越来越厌倦MVC的一些缺点.在本文,我将重 ...

  2. [译] 反思 1 号进程 / Rethinking PID 1

    By Lennart Poettering 译 SReadFox 原文链接:http://0pointer.de/blog/projects/systemd.html 译注:笔者大约在 2011 年读 ...

  3. Go开发中的十大常见陷阱[译]

    原文: The Top 10 Most Common Mistakes I've Seen in Go Projects 作者: Teiva Harsanyi 译者: Simon Ma 我在Go开发中 ...

  4. [译]深度神经网络的多任务学习概览(An Overview of Multi-task Learning in Deep Neural Networks)

    译自:http://sebastianruder.com/multi-task/ 1. 前言 在机器学习中,我们通常关心优化某一特定指标,不管这个指标是一个标准值,还是企业KPI.为了达到这个目标,我 ...

  5. [译] 重新思考 1 号进程 / Rethinking PID 1

    By Lennart Poettering 译 SReadFox 原文链接:http://0pointer.de/blog/projects/systemd.html 译注:笔者大约在 2011 年读 ...

  6. RxJS + Redux + React = Amazing!(译一)

    今天,我将Youtube上的<RxJS + Redux + React = Amazing!>翻译(+机译)了下来,以供国内的同学学习,英文听力好的同学可以直接看原版视频: https:/ ...

  7. Entity Framework 6 Recipes 2nd Edition 译 -> 目录 -持续更新

    因为看了<Entity Framework 6 Recipes 2nd Edition>这本书前面8章的翻译,感谢china_fucan. 从第九章开始,我是边看边译的,没有通读,加之英语 ...

  8. RxJS + Redux + React = Amazing!(译二)

    今天,我将Youtube上的<RxJS + Redux + React = Amazing!>的后半部分翻译(+机译)了下来,以供国内的同学学习,英文听力好的同学可以直接看原版视频: ht ...

  9. 「译」JUnit 5 系列:条件测试

    原文地址:http://blog.codefx.org/libraries/junit-5-conditions/ 原文日期:08, May, 2016 译文首发:Linesh 的博客:「译」JUni ...

随机推荐

  1. loadrunner录制脚本(一) ----录制脚本打不开浏览器

    loadrunner安装参考百度上的,或者有已经准备好的安装文档. 安装好了之后,用 HP Virtual Generator 录制脚本. 在上述操作中,需要选择火狐浏览器的exe文件驱动.也可以选择 ...

  2. 多版本VisualStudio导致的.net版本问题

      写在前面:本博文是在我现有知识状态下写的, 我现在是小白, 有错误欢迎指正. 以后假如接触到更合理的见解, 我一定会修正这篇博文的. 本文原是在我本地笔记中待着的, 写于2016/05/17. 下 ...

  3. ML—高斯判别分析

    华电北风吹 天津大学认知计算与应用重点实验室 日期:2015/12/11 高斯判别分析属于生成模型,模型终于学习一个特征-类别的联合概率. 0 多维正态分布 确定一个多维正态分布仅仅须要知道分布的均值 ...

  4. BEGINNING SHAREPOINT&#174; 2013 DEVELOPMENT 第8章节--配送SP2013Apps

    BEGINNING SHAREPOINT® 2013 DEVELOPMENT 第8章节--配送SP2013Apps         本章节你将学到: 通过SP商店配送Apps: 在商店授予证书并管理A ...

  5. hdu 5288||2015多校联合第一场1001题

    pid=5288">http://acm.hdu.edu.cn/showproblem.php?pid=5288 Problem Description OO has got a ar ...

  6. Tabhost最纯净的实现方式

    有时候常常使用别人用Tabhost+其他的实现demo.单纯利用Tabhost该怎样使用呢? 以下看样例: public class MainActivity extends TabActivity ...

  7. Uva 10550 Combination Lock

    Sample Input0 30 0 305 35 5 350 20 0 207 27 7 270 10 0 109 19 9 190 0 0 0Sample Output13501350162016 ...

  8. 字符串输入时的strlen()与\0

    在做串的数据结构时,被字符串printf %s输出时的结尾判断.strlen();长度.自定义StrCopy();字符串复制函数.StrAssign();字符串赋值函数卡了一下,固写此博巩固相关知识点 ...

  9. nginx取结构体地址

    linux内核提供了一个container_of()宏,可以根据结构体某个成员的地址找到父结构的地址. #define container_of(ptr, type, member) ({ \ con ...

  10. Linux 学习记录 三(Vim 文书编辑器).

            所有的Unix Like系统都会内建vi文书编辑器,其他的文书编辑器不一定存在,vim是vi的升级版,具有程序编辑的能力,可以主动的以字体颜色辨别语法的正确性,方便程序设计.vim 里 ...