Unity3d SimpleJSON add int to JSONClass
本文关键字:to JSONClass int add SimpleJSON Unity3d | 更新日期: 2023-09-27 18:35:14
我正在使用SimpleJSON for 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);
}
现在int
,float
,double
将被添加为不带"
的数字。并且看起来像这样:{"attr" : 4}
对此,
你怎么看? https://gist.github.com/lcnvdl/4532671a8f4dbbb6f306
要使用仅执行操作:
JsonHelper.Json(myObject);
您可以将其与对象,游戏对象,可脚本对象,单一行为等一起使用。