LitJSON之JSON读取和写入

2023-11-02

JSON读取和写入

一些开发者可能熟悉JSON数据的另一种处理方法:即通过利用类似流的方式来读取和写入数据。实现这种方法的是JsonReader类和 JsonWriter类。

这两个类实际上是整个库的基础。JsonMapper 建立在这两个类型之上。开发者可以认为读取和写入类是Litjson的底层程序接口。

使用JsonReader例子

using LitJson;
using System;

public class DataReader
{
    public static void Main()
    {
        string sample = @"{
            ""name""  : ""Bill"",
            ""age""   : 32,
            ""awake"" : true,
            ""n""     : 1994.0226,
            ""note""  : [ ""life"", ""is"", ""but"", ""a"", ""dream"" ]
          }";

        PrintJson(sample);
    }

    public static void PrintJson(string json)
    {
        JsonReader reader = new JsonReader(json);

        Console.WriteLine ("{0,14} {1,10} {2,16}", "Token", "Value", "Type");
        Console.WriteLine (new String ('-', 42));

        // The Read() method returns false when there's nothing else to read
        while (reader.Read()) {
            string type = reader.Value != null ?
                reader.Value.GetType().ToString() : "";

            Console.WriteLine("{0,14} {1,10} {2,16}",
                              reader.Token, reader.Value, type);
        }
    }
}

生成如下输出:

Token      Value             Type
------------------------------------------
   ObjectStart                            
  PropertyName       name    System.String
        String       Bill    System.String
  PropertyName        age    System.String
           Int         32     System.Int32
  PropertyName      awake    System.String
       Boolean       True   System.Boolean
  PropertyName          n    System.String
        Double  1994.0226    System.Double
  PropertyName       note    System.String
    ArrayStart                            
        String       life    System.String
        String         is    System.String
        String        but    System.String
        String          a    System.String
        String      dream    System.String
      ArrayEnd                            
     ObjectEnd                            

使用JsonWriter

JsonWriter 十分简单。请记住:如果你希望把任意一个对象转成JSON字符串,一般情况下使用JsonMapper.ToJson即可。

using LitJson;
using System;
using System.Text;

public class DataWriter
{
    public static void Main()
    {
        StringBuilder sb = new StringBuilder();
        JsonWriter writer = new JsonWriter(sb);

        writer.WriteArrayStart();
        writer.Write(1);
        writer.Write(2);
        writer.Write(3);

        writer.WriteObjectStart();
        writer.WritePropertyName("color");
        writer.Write("blue");
        writer.WriteObjectEnd();

        writer.WriteArrayEnd();

        Console.WriteLine(sb.ToString());
    }
}

案例输出

[1,2,3,{"color":"blue"}]

目录

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

LitJSON之JSON读取和写入 的相关文章

  • 常见损失函数 & 损失函数选择方法

    文章目录 0 定义 1 均方误差 2 交叉熵误差 3 mini batch中的损失函数 4 损失函数选择方法 神经网络的学习通过某个指标表示现在的状态 然后以这个指标为基准 寻找最优权重参数 这个指标就是损失函数 loss function
  • STM32(一)STM32简介

    大家好 今天我跟大家分享一下学习STM32的一些收获 希望对初学STM32的同学有所启示 当然 本人也是一名初学者 如果有谈论不妥之处 还望您能够批评指正 不吝赐教 本人将非常感激 如果有什么问题 欢迎您到http www openedv
  • 若依ruoyi 数据库字段驼峰命名 生成代码全部被转换为了小写

    vue前后端分离版 ruoyi common模块 com ruoyi common utils StringUtils 类的toCamelCase 对不包含下划线的字段不做处理 如果原字段不包含下划线 则返回原字段 不做后续处理 if s
  • jupyter notebook 配置虚拟环境(非conda)

    预先准备工作 创建虚拟环境 如 nlp 终端执行 python m ipykernel install user name 虚拟环境名 nlp display name Jupyter中要显示的名字 nlp 修改文件 Users admin
  • mysql 数据类型 (最大值 和 最小值)

    https blog csdn net zh521zh article details 51190365 utm source blogxgwz8 1 整型 MySQL数据类型 含义 有符号 tinyint m 1个字节 范围 128 12
  • C++_从流(stream)向文件保存多个数组的元素

    本文的目的是为了介绍如何将多个具有相同结构的数组元素 保存进一个txt文件中 float x 50 一大堆元素 float y 50 一大堆元素 float Z 50 一大堆元素 float w 50 一大堆元素 此处我想把几组数组内的值
  • GPSD如何设置固定波特率

    Gpsd设置固定波特率 修改 etc init d gpsd 支持 etc init d gpsd start stop restart bin sh BEGIN INIT INFO Provides gpsd Required Start
  • 【项目实战】基于Python实现时间序列分析建模(ARIMA模型)项目实战

    说明 这是一个机器学习实战项目 附带数据 代码 文档 代码讲解 如需数据 代码 文档 代码讲解可以直接到文章最后获取 1 项目背景 当今世界正处于一个数据信息时代 随着后续互联网的发展各行各业都会产生越来越多的数据 包括不限于商店 超市 便
  • 电子科技大学人工智能期末复习笔记(四):概率与贝叶斯网络

    目录 前言 概率 概率公式 贝叶斯公式 链式条件概率 例题 1 求联合概率分布 边缘概率分布 条件概率分布 2 灵活运用贝叶斯公式 概率总结 贝叶斯网络 判断独立性 两个事件独立的判断 条件独立性的判断 假设条件独立的链式法则 Active
  • RMAN删除过期的归档日志

    用rman进入把归档日志删除 1 命令 gt rman target 2 命令 gt crosscheck archivelog all 3 命令 gt delete expired archivelog all 4 命令 gt exit
  • 【LeetCode算法系列题解】第31~35题

    CONTENTS LeetCode 31 下一个排列 中等 LeetCode 32 最长有效括号 困难 LeetCode 33 搜索旋转排序数组 中等 LeetCode 34 在排序数组中查找元素的第一个和最后一个位置 中等 LeetCod
  • 代理IP与Socks5代理:跨界电商战略的数据智慧与隐私守护

    一 代理IP 跨界电商战略的数据引擎 多地区数据采集 跨界电商需要获取各地区的市场数据和竞争情报 代理IP允许模拟不同地区的IP地址 轻松实现多地区数据采集 为决策提供多维度的数据支持 规避反爬虫机制 代理IP的IP轮换能够规避网站的反爬虫
  • 如何在eclipse开发平台上运行静态网页

    1 先打开eclipse 新建一个Static Web Project工程 如下图 2 在此工程目录下的WebContent中建一个index html文件 此文件必须是index命名 因为服务器会自动寻找工程的主页 不然会出现下图 3 在
  • 正则应用之——日期正则表达式

    1 概述 首先需要说明的一点 无论是Winform 还是Webform 都有很成熟的日历控件 无论从易用性还是可扩展性上看 日期的选择和校验还是用日历控件来实现比较好 前几天在CSDN多个版块看到需要日期正则的帖子 所以整理了这篇文章 和大
  • 魔幻矩阵全解(有全部代码说明)

    无意间看到了关于魔幻矩阵的一篇博客 感觉挺有意思的 于是便编程分别实现了三种魔幻矩阵的c程序 下面是关于魔幻矩阵的一篇很详细的解释说明 看代码之前 务必先去了解了解 http blog csdn net northwolves articl
  • 二叉树前中后层次遍历,递归实现

    文章目录 前序遍历 代码 Python 代码 C 中序遍历 代码 Python 代码 C 后序遍历 代码 Python 代码 C 层序遍历 代码 Python 代码 C 反向层序遍历 代码 Python 代码 C 总结 前序遍历 题目链接
  • Go 字符串

    Go 字符串 01 Go 字符串简介 02 Go 支持的字面值 1 解释字符串 2 非解释字符串 03 Go 字符串常用操作 1 strings 包 1 判断字符串的前缀和后缀 2 判断字符串的包含关系 3 判断子串出现的位置 索引 3 字

随机推荐

  • 通过 docker-compose 快速部署 DolphinScheduler 保姆级教程

    文章目录 一 概述 二 前期准备 1 部署 docker 2 部署 docker compose 三 安装 MySQL 数据库 四 安装注册中心 Zookeeper 五 Apache DolphinScheduler 编排部署 1 下载 D
  • React中 useState在合成事件中是异步的,怎么获取到useState 设置后的最新值,或者说setState中获取到最新值

    useState 在合成事件中是异步的 合成时间是什么呢 合成事件 简单来说 比如onClick 或者 onChange 或者说是 Input之类的事件 所以一个情景是这样的 当你在onClick 中这样设置了状态 并赋值上去 但是打印的值
  • R语言数据可视化---交互式图表recharts包

    作者简介Introduction 邬书豪 车联网数据挖掘工程师 人工智能爱好者社区负责人 微信ID tsaiedu 知乎专栏 https www zhihu com people wu shu hao 67 activities 往期回顾
  • SYSTEMTIME、FILEITIME、LOCLTIME、UTC、QDateTime等各种时间

    1 UTC 世界协调时间 2 LOcalTime 本地时间 也就是系统设置时区的当前时间 3 SYSTEMTIME 格林威治时间 由本地时间减去时区即可 与localtime都是用SYSTEMTIME结构体存储 4 FileTime 基于U
  • protobuf-jetbrains-plugin插件

    ProtoBuf简介 ProtoBuf 是结构数据序列化方法 可简单类比于 XML 其具有以下特点 语言无关 平台无关 即 ProtoBuf 支持 Java C Python 等多种语言 支持多个平台 高效 即比 XML 更小 3 10倍
  • linux 命令:tr 详解

    tr 命令的功能是转换或删除字符 用法 tr OPTION SET1 SET2 选项 c C complement 用 SET2 替换 SET1 中没有包括的字符 d delete 删除 SET1 中的字符 s squeeze repeat
  • t420i升级固态硬盘提升_升级旧机子,为何首选升级固态硬盘?

    哈喽 带噶好 今天我们来聊聊升级老旧机器 为啥先升级固态硬盘 而不是升级内存 CPU 显卡之类的硬件 固态硬盘 是最近这五六年才开始普及开来的物件 所以很多人家里使用的主机 如果是五六年前买的话 机箱里大概率装的是机械硬盘 机械硬盘开机什么
  • 不懂就背--Java中的IO和NIO相关知识点总结

    一 IO和NIO的概念 NIO即New IO 这个库是在JDK1 4中才引入的 NIO和IO有相同的作用和目的 但实现方式不同 NIO主要用到的是块 所以NIO的效率要比IO高很多 在Java API中提供了两套NIO 一套是针对标准输入输
  • 如何正确的理解PSRR

    很多地方将PSR和PSRR混为一谈 PSR为电源抑制 Power Supply Rejection 即电源到输出增益的抑制 而PSRR为电源抑制比 Power Supply Rejection Ratio 即输入到输出的增益除以从电源到输出
  • 问题: Your project contains C++ files but it is not using a supported native build system.解决方法

    问题出现 将eclipse项目导入android studio后由于项目中有用到jni层中的东西 在将一系列可见错误解决后运行APP出现了标题中所述问题 1 网上最常见的解决方案 参考链接 一 在项目的gradle properties添加
  • Pytorch 入门 ----学习笔记

    本文是在参加DataWhale开源组队学习 深入浅出Pytorch 过程中 整理的学习笔记 Pytorch 基础知识 张量 张量的创建 张量 也叫做多维数组 常常我们对于一维张量也叫做标量 二位张量叫做矩阵 大部分时候 张量是三维及三维以上
  • LeetCode 1302. 层数最深叶子节点的和

    给你一棵二叉树的根节点 root 请你返回 层数最深的叶子节点的和 示例 1 输入 root 1 2 3 4 5 null 6 7 null null null null 8 输出 15 解法一 递归法 每次递归返回当前节点所处层数和以该节
  • AutoSet 根据配置表信息解析到新框架里面

    using System using System Collections Generic using System ComponentModel using System IO using System Reflection using
  • 深度学习理论篇

    目录 传统神经网络nn整体 nn总结 前向传播 像素点参数预处理 input 权重参数初始化 得分函数 W x 激活函数 f x 分类问题 反向传播 更新W 损失函数 output和target比较 卷积神经网络CNN CNN总结 卷积层
  • Mat类下的data指针的深刻理解

    摘要 本文主要介绍了Mat类中data指针访问每一个像素的方法 在访问和修改图像矩阵像素值的时候 我们经常会用到at ptr 以及迭代器MatIterator等 对于用Mat存储的图像的像素值的访问方法 文章http blog csdn n
  • html标记符之间不可以,HTML期末复习试题及参考答案

    HTML期末复习题 含答案 第1题判断正误 1 HTML标记符的属性一般不区分大小写 对 2 网站就是一个链接的页面集合 对 3 将网页上传到Internet时通常采用FTP方式 对 4 所有的HTML标记符都包括开始标记符和结束标记符 错
  • python数据评估

    未清理的数据 脏数据与杂乱数据 未清理数据分为两种 脏数据 也称为低质量数据 低质量数据存在内容问题 杂乱数据 也称为不整洁数据 不整洁数据存在结构问题 将数据可视化 例如 绘制图形 是编程评估的一部分 而非我们在这里说的目测评估 即通过目
  • NodeJs服务器启动后在浏览器访问时中文显示乱码处理方法

    创建一个叫 server js 的文件 并写入以下代码 使用 require 指令来载入 http 模块 并将实例化的 HTTP 赋值给变量 http var http require http 使用 http createServer 方
  • Dice相似系数(Dice Similarity Coefficient, DSC)

    Dice相似系数 Dice Similarity Coefficient DSC 分母可以解析为 FP TP 所有分类为阳性的样本 TP FN 真阳 假阴 所有真的是阳性的样本
  • LitJSON之JSON读取和写入

    JSON读取和写入 使用JsonReader例子 使用JsonWriter 目录 JSON读取和写入 一些开发者可能熟悉JSON数据的另一种处理方法 即通过利用类似流的方式来读取和写入数据 实现这种方法的是JsonReader类和 Json