编程语言
首页 > 编程语言> > java-GWT.将JSON字符串转换为String []

java-GWT.将JSON字符串转换为String []

作者:互联网

我有结果JSON字符串:[‘foo’,’bar’,’baz’].如何将其转换为String []或JsArrayString?如果不可能,我可以使用哪些预定义的数据结构?我不想创建自己的类,因为它对于简单的字符串数组是多余的.

解决方法:

由于您的字符串是有效的javascript数组表示形式,因此可以使用unsafeEval来获取javascript数组:

JsArrayString a = JsonUtils.unsafeEval("['foo', 'bar', 'baz']");

当然,如果将任意字符串传递给unsafeEval,则必须注意安全问题.

否则,如果您的字符串是有效的JSON表示形式,则可以使用更安全的safeEval:

JsArrayString j = JsonUtils.safeEval("[\"foo\", \"bar\", \"baz\"]");

您可以在Java代码中轻松处理JsArrayString,但是如果您喜欢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)

标签:json,java,gwt
来源: https://codeday.me/bug/20191123/2064421.html