如何使用凌空解析Android中以“ /”开头的Json?

时间:2019-07-17 07:34:36

标签: android json gson android-volley

我正在从URl解析json数据,但它以“ /”开头。 我有一个数据类,它是应用程序中的POJO类。 这是我的json文件。

for (int i = 1; i <= 1000; i++)
{
   Image newImage = Image.FromFile(@"Sample.tif");
   //...some logic here
   newImage.Save(i + ".tif", , ImageFormat.Tiff);
}

这是我的android代码。

/{
    "data": [
        {
            "id": "1",
            "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua."
        },
        {
            "id": "2",
            "text": "Felis donec et odio pellentesque diam volutpat commodo sed. Non arcu risus quis varius quam quisque. Nibh nisl condimentum id venenatis a condimentum vitae. Vel pharetra vel turpis nunc eget. "
        },
        {
            "id": "3",
            "text": "Volutpat sed cras ornare arcu dui vivamus arcu felis bibendum. Lobortis mattis aliquam faucibus purus in. Aliquam sem fringilla ut morbi tincidunt augue interdum."
        }
    ]
}

我收到错误消息“字符0的预期文字值。

3 个答案:

答案 0 :(得分:2)

只需执行以下操作即可从响应中删除“ /”:

String subString = (respnse.tostring).replace("/","");
JSONobject jsonObj = new JSONobject(subString);
Gson gson = new Gson();
JSONObject data1 = jsonObj.getJSONObject("data");
data = gson.fromJson(data1.toString(), Data.class);

希望这会有所帮助

答案 1 :(得分:2)

如果只想删除第一个斜杠,请使用以下命令:

if (jsonString.substring(0, 1).equals("/") {
    jsonString = jsonString.substring(1);
}

答案 2 :(得分:1)

在解析对象之前,只需从json中删除“ /”即可。

String jsonString = response.toString();
if (jsonString.contains("/"))
   jsonString.replace("/","");

解析之后

 Gson gson = new Gson();
 JSONObject data1 = jsonString.getJSONObject("data");
 data = gson.fromJson(data1.toString(), Data.class);

希望它将对您有帮助!