2014-10-06 22 views
3

我使用的是SimpleJSON腳本引號的字符串從http://wiki.unity3d.com/index.php/SimpleJSON檢索,而不使用Unity的SimpleJSON

JSONNode root = JSON.Parse ("{ \"Name\" : \"Joe\"}"); 
Debug.Log (root ["Name"].ToString().Length); 

這將返回5而非3。這是因爲root ["Name"]正在返回字符串"Joe"(包括引號,所以這是5個字符)。

但這並不是我想要的 - 我將引號放在那裏,因爲它是解析器工作的唯一途徑。

當然,我可以通過取出一個子字符串來手動刪除引號,但我有這種感覺,這不是它應該如何去。所以我的問題是:如何使用此腳本檢索不帶引號的字符串Joe

回答

6

JSONNode類是抽象的; JSONDataToString()方法插入引號。請參閱:使用Value財產

public override string ToString() 
{ 
    return "\"" + Escape (m_Data) + "\""; 
} 

嘗試,而不是:

JSONData root = JSON.Parse("{ \"Name\" : \"Joe\"}"); 
Debug.Log(root["Name"].Value.Length); 
Debug.Log(root["Name"].Value); 
0

利用價值屬性,而不是調用toString()。

JSONNode root = JSON.Parse("{ \"Name\" : \"Joe\"}"); 
Console.WriteLine(root["Name"].Value); 
Console.WriteLine(root["Name"].Value.Length); 

輸出:

Joe 
3 
+1

是什麼跟以前的回答的主要區別? – 2014-10-10 14:50:07

+0

沒有區別。只是一點點不專心。 – 2014-10-10 18:13:13