在android中将JSON转换为数组有什么问题?

在android中将JSON转换为数组有什么问题?,android,json,try-catch,Android,Json,Try Catch,这是我在项目(FSM,我知道)中的主要活动(唯一活动) 是什么导致了这些奇怪的角色?它们仅在我将流的int len设置为此大小(16*1024)时发生。原来只有500元。但为什么我甚至需要指定要返回的字符数呢 为什么应用程序永远无法通过JSONArray JSONArray=newJSONARRAY(contentAsString);线路 我可以将JSON编码的数组直接放入java数组中吗?您是否可以提供web服务url,以便我可以使用代码进行测试 请将用户的getDouble和电子邮件的get

这是我在项目(FSM,我知道)中的主要活动(唯一活动)

是什么导致了这些奇怪的角色?它们仅在我将流的int len设置为此大小(16*1024)时发生。原来只有500元。但为什么我甚至需要指定要返回的字符数呢

为什么应用程序永远无法通过JSONArray JSONArray=newJSONARRAY(contentAsString);线路


我可以将JSON编码的数组直接放入java数组中吗?

您是否可以提供web服务url,以便我可以使用代码进行测试

请将用户的getDouble和电子邮件的getBoolean更改为getString,如下所示:

System.out.println(i + " user : " + someData.getString("username"));
System.out.println(i + " email : " + someData.getString("email"));

当id、用户名和电子邮件的值是字符串时,为什么要调用someData.getInt()/sameData.getDouble()?您应该调用someData.getString()。

我将读取InputStream的方法替换为:

public String readIt(InputStream stream, int len) throws IOException, UnsupportedEncodingException {

        StringBuilder builder = new StringBuilder();
        BufferedReader reader = new BufferedReader(new InputStreamReader(stream));

        //New code to convert InputStream to String
        String line;
        while ((line = reader.readLine()) != null) {
        builder.append(line);
        }
        return builder.toString();
    }

现在它可以工作了。

这里是对一些结果的完整响应。谢谢,我在调试时测试了两个不同的服务。我忘了换了。我把它们换成了字符串。好的,但是我仍然在Jo之后得到奇怪的数据字符……知道为什么吗?这看起来更像是一个编码问题。是否有可能字符串没有使用正确的编码加载?或者,可能(如果您使用的是eclipse),IDE没有使用正确的编码进行设置。请参阅Im不使用Eclipse,Im使用Android Studio。我应该如何对其进行编码以使其工作?
System.out.println(i + " user : " + someData.getString("username"));
System.out.println(i + " email : " + someData.getString("email"));
public String readIt(InputStream stream, int len) throws IOException, UnsupportedEncodingException {

        StringBuilder builder = new StringBuilder();
        BufferedReader reader = new BufferedReader(new InputStreamReader(stream));

        //New code to convert InputStream to String
        String line;
        while ((line = reader.readLine()) != null) {
        builder.append(line);
        }
        return builder.toString();
    }