`
javatoyou
  • 浏览: 1017450 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

微調一下 Json.net ,讓他可以序列基本型別

 
阅读更多

因為 Json.net 是有附原始碼的,他也附了單元測試的專案,底下是我額外增加的UnitTest,我的目標就是讓底下的測試可以pass,而且原來的Test 也要都能通過。

ValueTypeTest.cs

using System;
using NUnit.Framework;

namespace Newtonsoft.Json.Test {
[TestFixture]
public class ValueTypeTest {
[Test]
public void NullTest() {
string jsonText = JavaScriptConvert.SerializeObject(null);
object obj = JavaScriptConvert.DeserializeObject<Object>(jsonText);
Console.WriteLine(jsonText);
Assert.IsNull(obj);
}
[Test]
public void StringTest() {
string jsonText = JavaScriptConvert.SerializeObject("hello world");
object obj = JavaScriptConvert.DeserializeObject<object>(jsonText);
Console.WriteLine(jsonText);
Assert.AreEqual(obj, "hello world");
}
[Test]
public void IntegerTest() {
string jsonText = JavaScriptConvert.SerializeObject(1234);
int n = JavaScriptConvert.DeserializeObject<int>(jsonText);
Console.WriteLine(jsonText);
Assert.AreEqual(n, 1234);
}
[Test]
public void DateTimeTest() {
string jsonText = JavaScriptConvert.SerializeObject(new DateTime(2007, 7, 22, 12, 4, 55));
DateTime dtime = JavaScriptConvert.DeserializeObject<DateTime>(jsonText);
Console.WriteLine(jsonText);
Assert.AreEqual(dtime, new DateTime(2007, 7, 22, 12, 4, 55));
}
[Test]
public void BooleanTest() {
string jsonText = JavaScriptConvert.SerializeObject(true);
bool bVal = JavaScriptConvert.DeserializeObject<bool>(jsonText);
Console.WriteLine(jsonText);
Assert.AreEqual(bVal, true);
string jsonText2 = JavaScriptConvert.SerializeObject(false);
bool bVal2 = JavaScriptConvert.DeserializeObject<bool>(jsonText2);
Console.WriteLine(jsonText2);
Assert.AreEqual(bVal2, false);
}
[Test]
public void FloatTest() {
string jsonText = JavaScriptConvert.SerializeObject(12345.68F);
float fVal = JavaScriptConvert.DeserializeObject<float>(jsonText);
Console.WriteLine(jsonText);
Assert.AreEqual(fVal, 12345.68F);
}
[Test]
public void EnumTest() {
string jsonText = JavaScriptConvert.SerializeObject(StoreColor.White);
StoreColor color = JavaScriptConvert.DeserializeObject<StoreColor>(jsonText);
Console.WriteLine(jsonText);
Assert.AreEqual(color, StoreColor.White);
}
}
}

開始看code後,發現比想像中的簡單,失敗的原因是作者有檢查且擋掉,或許這不是 bug 而是 by design 吧

JsonSerializer.cs, line:406-407

修改前:
if (value == null)
throw new ArgumentNullException("value");

修改後:
//if (value == null)
// throw new ArgumentNullException("value");

JsonWriter.cs, line104

修改前:
/* Value */{ State.Error, State.Object, State.Error, State.Error, State.Array, State.Array,State.Error,State.Error },

修改後:
/* Value */{ State.Closed, State.Object,State.Error, State.Error, State.Array, State.Array, State.Error, State.Error },

分享到:
评论

相关推荐

    ASP.NET应用程序性能微调.rar

    ASP.NET应用程序性能微调,教你开发高性能的 ASP.NET 应用程序

    asp.net word以及text文本内容检索,附带MVC格式

    asp.net word以及text文本内容检索,附带MVC格式,下载后,微调一下 就能用

    chatglm微调指令数据集

    chatglm微调指令数据集 可以用来训练自己的微调大模型 数据格式为 "instruction": ", "input": "", "output" 数据为文本格式 大小为18m左右 大语言模型微调训练必备

    ChatGLM2-6B(windows本地微调实践)

    2、ChatGLM-Efficient-Tuning(Chat GLM版本1微调)框架 3、修改数据集 4、进行模型微调训练 5、进行模型微调测试 6、进行模型输出 7、ChatGLM2-6B-main加载微调后模型验证 注:环境自己搭建,我的用anadconda创建的...

    extjs 微调控件,时间微调控件,微调,javascript 微调

    extjs 微调控件,时间微调控件,微调,javascript 微调 v2.0以上都可以用!!!

    大语言模型的微调和推理-baichuan7B, chatglm2-6B, Qwen-7B-chat.zip

    大语言模型的微调和推理——baichuan7B, chatglm2-6B, Qwen-7B-chat.zip微调:基于nation-gpt-ie.json文件进行微调,微调代码见baichuan_sft.py文件 推断:微调代码见baichuan_infer.py文件,给出一个示例如下 微调...

    About Firefly(流萤): 中文对话式大语言模型(全量微调+QLoRA),支持微调Llma2、Llama、Qwen、B

    支持微调XVERSE-13B。 开源Firefly项目多轮对话微调的firefly-chatglm2-6b。 支持微调通义千问Qwen-7B,该模型在各个中英文榜单,表现非常优异。 支持多轮对话微调ChatGLM2,比官方的训练方法更加充分高效(近期会...

    百川大模型微调,lora模型,训练微调自己的大预言模型

    百川大模型微调,lora模型,训练模型,大语言模型,Baichuan-7B模型微调,百川大模型量化 int量化 INT4量化微调模型,Baichuan-7B模型量化 百川模型量化 Baichuan-7B 是由百川智能开发的一个开源可商用的大规模预...

    ChatGLM和LLaMA中文指令微调教程.zip

    本资源是大模型的微调教程内含数据集和模型连接,可以作为入门教程

    Python LoRA 大模型轻量级微调笔记.md

    可以先了解LoRA微调的基本思路,然后可以结合示例代码逐步阅读,辅以注释理解实现细节。最后可以选择感兴趣的应用场景进行重点学习。在理解示例代码时,可以尝试变化代码进行实验测试。总体来说,文中内容比较丰富全面,...

    Kurukuru:.NET CoreStandard的终端微调器

    .NET Core / Standard的终端微调程序库。 受到 强烈启发。 特征 在Windows环境中可识别非Unicode代码页。 在使用非Unicode代码页(例如CP437:EN-US,CP932:JA-JP)的终端上运行时,默认情况下,该库将使用ASCII...

    时钟微调器的设置

    ssd4实验,时钟界面,微调器的设置。完整的时钟走向流程界面的设置。

    json-rules-engine:以JSON表示的规则引擎

    以JSON表示的规则引擎 概要 json-rules-engine是功能强大的轻量级规则引擎。 规则由简单的json结构组成,使其易于阅读且易于持久。 产品特点 以简单易读的JSON表示的规则 完全支持ALL和ANY布尔运算符,包括递归嵌套 ...

    Jcrop_swfupload_asp.net实例

    的asp.net实例,简单好学,是本人项目中的实例,看了网上写的太麻烦,自己写的。 Jcrop是一个jQuery插件,它能为你的WEB应用程序快速简单地提供图片裁剪的功能。 特点: 对所有图片均unobtrusively(无侵入的,保持...

    大模型指令微调概述,大模型微调简单介绍ppt

    目前学术界一般将NLP任务的发展分为四个阶段即NLP四范式: 第一范式:基于传统机器学习模型的范式,如 tf-idf 特征+朴素贝叶斯等机器算法; 第二范式:基于深度学习模型的范式,如 word2vec 特征 + LSTM 等深度学习...

    可微调的舵机控制可微调的舵机控制

    20ms的信号 可以微调0.5-2.5的信号来控制舵机 51单片机 12M晶振 按键控制 程序简单易懂

    通过微调 GPT-2 我自己的聊天机器人

    GPT-2 代表 Generative pre-trained transformer 2,顾名思义,它会生成...我们可以通过使用少量训练数据微调预训练模型来构建聊天机器人。 在这篇文章中,我将微调 GPT-2,尤其是 rinna 的,它是日本 GPT-2 模型之一。

    两室型离子刻蚀微调机运行流程示意图-测试(含部分源码)

    本程序用于测试两室型离子刻蚀微调机的运行流程示意图。 该运行流程示意图的程序封装为一个DLL,测试程序在运行时会自动注册该DLL。 注意:测试时也需要按照真实操作流程顺序来测,否则,流程示意图可能无效果或...

    严格的典型模型中的量子微调

    我们调查了在最近的沼泽地猜想中对暗能量的典型模型进行微调的程度。 特别是,问题在于是否存在V和|∇V|都存在的双重微调。 微调,或者由于自然产生的关系|∇V|〜V / MP1,是否只有一个微调。 我们发现,对于经典...

    chatglm使用lora进行模型微调训练

    chatglm使用lora进行模型微调训练,没有采用官方的方案,使用了另一种效果好的方案,对于显存特别友好,24g显存就能训练自己的垂直领域大模型训练了,效果还是非常的好的,适合自己机器不是很多的需要做实验的同学

Global site tag (gtag.js) - Google Analytics