我正在使用http://wiki.unity3d.com/index.php/SimpleJSON
中的SimpleJSON脚本JSONNode root = JSON.Parse ("{ \"Name\" : \"Joe\"}");
Debug.Log (root ["Name"].ToString().Length);
这会返回5
而不是3
。这是因为root ["Name"]
返回一个字面上为"Joe"
的字符串(包括引号,因此包含5个字符)。
但那并不是我想要的 - 我在那里放置了引号,因为它是解析器工作的唯一方式。
当然我可以通过取出一个子字符串来手动删除引号,但我觉得这不应该是怎么回事。所以我的问题是:如何使用此脚本检索不带引号的字符串Joe
?
答案 0 :(得分:6)
JSONNode
类是抽象的; JSONData
类ToString()
方法插入引号。参见:
public override string ToString ()
{
return "\"" + Escape (m_Data) + "\"";
}
请尝试使用Value
属性:
JSONData root = JSON.Parse("{ \"Name\" : \"Joe\"}");
Debug.Log(root["Name"].Value.Length);
Debug.Log(root["Name"].Value);
答案 1 :(得分:0)
使用Value属性而不是调用ToString()。
JSONNode root = JSON.Parse("{ \"Name\" : \"Joe\"}");
Console.WriteLine(root["Name"].Value);
Console.WriteLine(root["Name"].Value.Length);
输出:
Joe
3