首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >格式浮动/双发行的LitJSON库

格式浮动/双发行的LitJSON库
EN

Stack Overflow用户
提问于 2014-02-12 23:25:15
回答 3查看 4.9K关注 0票数 3

由于JSON是一种可以写成字符串的格式,所以它必须由库来解释,有时还必须由语言本身来解释。

在较早版本的C#中,没有类似的情况。使用库LitJSON,我遇到了以下问题,我有一个名为Vector3的类,它包含3个浮点值(而不是double)。

代码语言:javascript
复制
public class Vector3 {
 public float x{get;set;}
 public float y{get;set;}
 public float z{get;set;}
}

使用下面用LitJSON编写的代码片段,它应该使用值填充Vector3的实例。

代码语言:javascript
复制
Vector3 test = JsonMapper.ToObject<Vector3>("{'x':1.0,'y':1.0,'z':1.0}");

但是出现了一个错误:“无法将值(Single.Double类型)赋给System.Single”

似乎它只知道双倍,而不知道浮子:/

有什么解决办法吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-09-25 10:24:58

我想发表意见,但我的声誉却是< 50。

我在Unity3D (脚本语言Mono C#)中使用了Unity3D。我在将json解析到一个对象时也遇到了同样的问题,这个对象有很多浮点数。我向LitJson库添加了浮点支持。如果你还需要这个请告诉我。

票数 3
EN

Stack Overflow用户

发布于 2016-10-26 10:19:13

同样的问题,终于找到了解决办法。在"ToObject“/ "ToJson”之前添加以下代码行

代码语言:javascript
复制
JsonMapper.RegisterExporter<float>((obj, writer) => writer.Write(Convert.ToDouble(obj)));
JsonMapper.RegisterImporter<double, float>(input => Convert.ToSingle(input));
票数 5
EN

Stack Overflow用户

发布于 2014-02-13 00:27:24

根据我从它们在Github上的源代码中所看到的,库支持双而非单一。

从他们的库中提取的Jsondata.cs

代码语言:javascript
复制
#region Fields
private IList<JsonData> inst_array;
private bool inst_boolean;
private double inst_double;
private int inst_int;
private long inst_long;
private IDictionary<string, JsonData> inst_object;
private string inst_string;
private string json;
private JsonType type;
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21742126

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档