当前位置: 首页 > 面试题库 >

如何将JSONArray转换为int数组?

储毅
2023-03-14
问题内容

我的方法有问题JSONObject sayJSONHello()

@Path("/hello")
public class SimplyHello {

    @GET
    @Produces(MediaType.APPLICATION_JSON)

     public JSONObject sayJSONHello() {

        JSONArray numbers = new JSONArray();

        numbers.put(1);
        numbers.put(2);
        numbers.put(3);
        numbers.put(4);

        JSONObject result = new JSONObject();

        try {
            result.put("numbers", numbers);
        } catch (JSONException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        return result;
    }
}

在客户端,我想要一个int数组[1, 2, 3, 4]而不是JSON

{"numbers":[1,2,3,4]}

我怎样才能做到这一点?

客户代码:

System.out.println(service.path("rest").path("hello")
    .accept(MediaType.APPLICATION_JSON).get(String.class));

我的方法返回JSONObject,但我想从中提取数字,以便使用这些数字进行计算(例如作为int[])。

我公开了作为JSONObject的功能。

 String y = service.path("rest").path("hello").accept(MediaType.APPLICATION_JSON).get(String.class);   
JSONObject jobj = new JSONObject(y);   
int [] id = new int[50];
 id = (int [] ) jobj.optJSONObject("numbers:");

然后我得到错误:无法从JSONObject转换为int []

2种其他方式

String y = service.path("rest").path("hello").accept(MediaType.APPLICATION_JSON).get(String.class);   
JSONArray obj = new JSONArray(y);  
int [] id = new int[50];      
 id = (int [] ) obj.optJSONArray(0);

这次我得到:无法从JSONArray转换为int [] …

反正还是行不通..


问题答案:

我从来没有用过这个,我也没有测试过,但看着你的代码和文档JSONObject,并JSONArray,这是我的建议。

// Receive JSON from server and parse it.
String jsonString = service.path("rest").path("hello")
    .accept(MediaType.APPLICATION_JSON).get(String.class);
JSONObject obj = new JSONObject(jsonString);

// Retrieve number array from JSON object.
JSONArray array = obj.optJSONArray("numbers");

// Deal with the case of a non-array value.
if (array == null) { /*...*/ }

// Create an int array to accomodate the numbers.
int[] numbers = new int[array.length()];

// Extract numbers from JSON array.
for (int i = 0; i < array.length(); ++i) {
    numbers[i] = array.optInt(i);
}

这应该适合您的情况。在更严重的应用程序,你可能要检查如果值确实是整数,作为optInt回报0,当值不存在,或者不是一个整数。

获取与索引关联的可选int值。如果索引没有值,或者该值不是数字并且不能转换为数字,则返回零。



 类似资料:
  • 问题内容: 我有一个下面的代码- 通过HttpClient连接到Web服务到PHP文件 从SQL查询返回结果 返回格式是一个jArray(一个JSONArray) 当我查看LogCat时,我看到了查询的所有“名称”,每条记录都被打印出来。我只需要将这些结果插入ListView中即可。我怎样才能做到这一点? PS-我没有ArrayAdapter的单独类。这可能是原因吗? 问题答案: 如果您只想显示t

  • 问题内容: 基本上我有: 现在,我想将其转换为包含相同信息的。这样我就可以绕过对象,然后在需要时可以从对象中获取所有信息。任何帮助,将不胜感激,谢谢。 问题答案: 通常,Json对象将包含您的值(包括数组)作为其中的命名字段。因此,类似: 在JSON中将是{“ arrayName”:[…]}。

  • 问题内容: 我有这样的回应: 这是我的代码: 如何转换为JSONArray? 问题答案: 像这样:

  • 我已经能够从json字符串中获取json数组,但不知道如何将其放入Hashmap中,其中字符串显示货物类型,整数显示数量。 字符串:

  • 问题内容: 我希望此代码显示: 问题答案: 在将导致的一个单列表。 如果更改为,它将按预期工作。不知道这是否对您有帮助。

  • 问题内容: 我正在获取ASCII值,并且想将其转换为整数,因为我知道它是整数ASCII值。 这是5的ASCII值。我如何将其转换为整数? 问题答案: