我可以使用Gson解析此行:
<form action="" method="POST">
<input type="text" name="demo" value="Demo"><br/>
<input type="text" name="demo2" value="Demo 2"><br/>
<input type="text" name="array[]" value="Array 1"><br/>
<input type="text" name="array[]" value="Array 2"><br/>
<input type="text" name="array[]" value="Array 3"><br/>
<input type="text" name="array[]" value="Array 4"><br/>
<input type="submit">
</form>
Array
(
[demo] => Demo
[demo2] => Demo 2
[array] => Array
(
[0] => Array 1
[1] => Array 2
[2] => Array 3
[3] => Array 4
)
)
但是,我无法使用Gson解析此行:
realm_access: {roles: [offline_access,uma_authorization] } }
正如后面的String之间有空格一样,它会引发以下错误
com.google.gson.JsonSyntaxException:java.lang.IllegalStateException: 期望一个字符串,但在第1行第533行路径上是BEGIN_OBJECT $ .resource_access at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory $ Adapter.read(ReflectiveTypeAdapterFactory.java:224) 在com.google.gson.Gson.fromJson(Gson.java:888)at com.google.gson.Gson.fromJson(Gson.java:853)at com.google.gson.Gson.fromJson(Gson.java:802)at com.google.gson.Gson.fromJson(Gson.java:774)
答案 0 :(得分:0)
在Json中,您无法使用空格制作offline access
之类的内容,如果您使用"offline access"
之类的双引号,则需要预期。
在Json格式中,通常,开发人员使用_
这样的下划线offline_access
或像offlineAccess
这样的骆驼案例。
因此,如果你想要带空格的值,只需在双引号之间添加它。
答案 1 :(得分:0)
如果保留空格并不重要,可以使用正则表达式删除它们:
String json = realm_access: {roles: [offline_access,uma_authorization] } };
json.replaceAll("\\s+","");
String output = new Gson().toJson(json);