gpt4 book ai didi

c# - Unity3d SimpleJSON 添加 int 到 JSONClass

转载 作者:太空狗 更新时间:2023-10-30 00:24:15 25 4
gpt4 key购买 nike

我正在使用 SimpleJSON对于 Unity3d。我想将 int 添加到 JSONClass

例如我需要 json : {"attr": 4}

JSONClass cl = new JSONClass();

我试过这个:

cl["attr"].AsInt = 4;

还有这个:

cl["attr"] = new JSONData(4);

以及任何其他情况。无论如何我得到 {"attr": "4"} 其中 4 是字符串。

如何添加 int 到它?

最佳答案

在目前的实现中这是不可能的。

所以我添加了新类型:

public enum JSONBinaryTag
{
Array = 1,
Class = 2,
Value = 3,
IntValue = 4,
DoubleValue = 5,
BoolValue = 6,
FloatValue = 7,
LongValue = 8,
String = 9, // <-- new
Number = 10 // <-- new
}

并在JSONData中添加类型检查:

public class JSONData : JSONNode{
static Regex m_Regex = new Regex(@"^[0-9]*(?:\.[0-9]*)?$");
private JSONBinaryTag m_Type = JSONBinaryTag.String;

private string m_Data;
public override string Value {
get { return m_Data; }
set { m_Data = value; }
}
public JSONData(string aData){
m_Data = aData;

// check for number
if (m_Regex.IsMatch(m_Data))
m_Type = JSONBinaryTag.Number;
else
m_Type = JSONBinaryTag.String;

}
[...]
}

并更改了toString()方法:

   public override string ToString(){
if (m_Type == JSONBinaryTag.String)
return "\"" + Escape(m_Data) + "\"";
else
return Escape(m_Data);

}

现在 intfloatdouble 将添加为没有 " 的数字。看起来像这个:{"attr": 4}

关于c# - Unity3d SimpleJSON 添加 int 到 JSONClass,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27648850/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com