我有結果JSON字符串:['foo', 'bar', 'baz']
。我如何將它轉換爲String[]
或JsArrayString
?如果它不可能使用什麼預定義的數據結構?我不想創建自己的類,因爲它對於簡單的字符串數組是多餘的。GWT。將JSON字符串轉換爲字符串[]
3
A
回答
3
由於您的字符串是一個有效的JavaScript數組表示,你可以使用unsafeEval
得到一個JavaScript數組:
JsArrayString a = JsonUtils.unsafeEval("['foo', 'bar', 'baz']");
當然你如果傳遞一個任意字符串unsafeEval
要注意的安全問題。
否則,如果你的字符串是一個有效的JSON表示你可以使用safeEval
反而是更安全:
JsArrayString j = JsonUtils.safeEval("[\"foo\", \"bar\", \"baz\"]");
可以應對JsArrayString
容易在Java代碼中,但如果你喜歡一個java.lang.String[]
你需要編寫一些額外的代碼(取自jscollections庫)。請注意,在生產模式下,轉換不會增加任何性能損失。
public static String[] toArray(JsArrayString values) {
if (GWT.isScript()) {
return reinterpretCast(values);
} else {
int length = values.length();
String[] ret = new String[length];
for (int i = 0, l = length; i < l; i++) {
ret[i] = values.get(i);
}
return ret;
}
}
private static native String[] reinterpretCast(JsArrayString value) /*-{
return value;
}-*/;
最後,你可以使用java.util.List<String>
爲好,但它可以有一些性能問題。
List<String> l = Arrays.asList(s)
0
GWT居然還內置類在com.google.gwt.json.clint
包JSON工作。請注意,您需要
<inherits name="com.google.gwt.json.JSON" />
添加到您的gwt.xml文件。
JSONArray array = JSONParser.parseLenient("['foo', 'bar', 'baz']").isArray();
String[] resultArray = String[array.size()];
for(int i = 0; i < array.size(); i++)
resultArray[i] = array.get(i).isString().stringValue();
相關問題
- 1. 將字符串轉換爲字符串
- 2. 將字符串轉換爲字符串
- 3. 將字符串轉換爲字符串
- 4. 將GWT xml.client.Document轉換爲XML字符串
- 5. 將非JSON字符串轉換爲JSON
- 6. 字符串轉換爲JSON
- 7. 將JSON字符串轉換爲C#字符串數組
- 8. 將字符串數組轉換爲JSON格式的字符串
- 9. 將字符串生成器轉換爲json字符串
- 10. 如何將JSON字符串轉換爲字符串數組?
- 11. 將json字符串轉換爲iphone中的xml字符串
- 12. 將字符串轉換爲JSON
- 13. 將字符串轉換爲json對象
- 14. 將Java字符串轉換爲Json
- 15. 將字符串轉換爲json數組
- 16. 將Json字符串轉換爲DataTable
- 17. 將JSON轉換爲字符串JAVASCRIPT
- 18. Angular2將字符串轉換爲JSON
- 19. 將字符串轉換爲JSON對象
- 20. 將Json數組轉換爲字符串
- 21. Android將字符串轉換爲JSON
- 22. 將JValue轉換爲JSON字符串
- 23. 將R錶轉換爲JSON字符串
- 24. 將JSON HTML字符串轉換爲HTML
- 25. 將json轉換爲字符串
- 26. 將JSON字符串轉換爲C#JsonObject
- 27. 將字符串轉換爲JSON對象
- 28. Json將字符串轉換爲&lt;
- 29. 如何將JSON轉換爲字符串?
- 30. 將JSON對象轉換爲字符串
GWT中內置了用於處理JSON的方法和類,沒有理由將JS引入它。 – Marconius
是的,我知道這一點,我以前用過它。 GWT-JSON對象在內部使用jsni來解析字符串,並生成很多java類而不是Overlay類,這些類執行得更好。事實上,現在GWT的趨勢是使用比老式GWT-JSON更好的autobeans將json映射到java-beans。無論如何,用戶正在詢問如何將字符串轉換爲JsArrayString或String,而這正是我的迴應。 –