如何在Android Studio Java中将Json字符串转换为Json数组

问题描述 投票:0回答:3

我有一个如下所示的 Json 字符串

["Monday","Tueday","wednesday","Thuesday","Friday","Saturday"]

我想要做的是使用 android studio volley 库将此 Json 字符串发送到 Web 服务器。

所以我不断收到此错误

 com.android.volley.ParseError: org.json.JSONException: Value <br of type java.lang.String cannot be converted to JSONArray

字符串无法转换为JsonArray。

所以我有 2 个问题需要帮助。

我的第一个是如何将字符串转换为 JsonArray。例如下面的字符串。

 ["Monday","Tueday","wednesday","Thuesday","Friday","Saturday"]

我的第二个问题是关于将这个 Jason 数组(一旦我们创建)传递到 Web 服务器。我正在研究 Hashmap,但我不知道如何在 Hashmap 中发送 JsonArray。

我尝试了下面的代码,但它不起作用。

@Override
        protected Map<String, String> getParams() throws AuthFailureError {
            return super.getParams();
        }

我不知道如何在hashmap中发送JsaonArray。

所以总的来说,我想将上面的字符串发送到网络服务器。

android arrays json android-volley
3个回答
0
投票

假设字符串的名称是myString。

rString = myString.replace('[','');
rString = rString.replace(']','');
rString = rString.replace('"','');
String split[] = rString.split(',').

现在你有一个名为 split 的数组,每个位置都是一天。


0
投票

编辑:这是第一个问题

用那个

JSONArray yourJsonArray = JSONArray.fromObject(yourJson);

0
投票

回答第一个问题

我认为这不是来自服务器的确切响应,并且响应中有一个 HTML

<br>
标记。

因为行

Value <br of type java.lang.String cannot be...
明显包含字符串
<br
,请尝试替换 HTML 标签和/或将 HTML 标签解码/转义为纯文本,然后您可以将该纯 JSON 文本转换为 JSONArray

此片段可能会帮助您解码响应:

String parsedReponse = Html.fromHtml(serverResponse).toString()
if (parsedReponse != null) parsedReponse = parsedReponse.trim();

回答第二个问题

查看 OkHttp3 和 Retrofit 库,它们非常流行且令人惊叹。他们可以帮助您将 POST 数据发送到您的服务器。

© www.soinside.com 2019 - 2024. All rights reserved.