-1

JSONObject または String を整数にキャストする方法に問題があります。

データを JSONObject として 1 回送信します

    @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;
}

そして1つは文字列として

@Path("/test")
public class Hello {

@GET
@Produces(MediaType.APPLICATION_JSON)
public String sayJSONHello() {      

    String myString =null;

    try 
    {           
         myString = new JSONObject().put("data", "1 2 4").toString();           
    } 

    catch (JSONException e)
    {           
        e.printStackTrace();
    }

    return myString;
}

次に、このデータを Int として受け取る方法に問題があります。私はこのように試しました(クライアント):

  Syste m.out.println(service.path("rest").path("hello").accept(MediaType.APPLICATION_JSON).get(String.class));  
           System.out.println(service.path("rest").path("test").accept(MediaType.APPLICATION_JSON).get(String.class));  
  String k = service.path("rest").path("test").accept(MediaType.APPLICATION_JSON).get(String.class);

   //  ERROR  int temp = Integer.parseInt(k);

誰かがそれに対処する方法をアドバイスできますか?

4

1 に答える 1

0

変数 k は JSON 全体を格納しています。最初に JSON オブジェクトを解析してから、必要な特定の整数 (配列内にあると思いますか?) を取り出す必要があります。

于 2013-11-13T16:45:10.003 に答える