0

有効な JSON と思われるものを返す ASP.Net 3.5 Web サービス (asmx) があります。返された JSON をオンライン バリデーター (JSONLint . com) を使用して検証しましたが、有効であると表示されます。この文字列を解析する方法がわかりません。

{
    "d": "{\"returnType\":\"authToken\",\"returnData\":\"b1ec28b8-3fca-427a-bbce-8802fb95d94b\"}"
}

以下は私のコードです。

public static JSONObject DotNetJSONResponse(String raw) throws Exception {
    JSONObject joRaw;
    try {
        joRaw = new JSONObject(raw);
        JSONObject joD = joRaw.getJSONObject("d");
        return joD;
    } catch (JSONException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
        return null;
    }

}
4

2 に答える 2

0

この方法を試してください

public static JSONObject DotNetJSONResponse(String raw) throws Exception {
JSONObject joRaw;
  try {
      joRaw = new JSONObject(raw);
      String str1 = joRaw.getString("d");
      JSONObject joD = new JSONObject(str1);
      return joD;
      } catch (JSONException e) {
         // TODO Auto-generated catch block
        e.printStackTrace();
        return null;
   }
}
于 2012-08-16T03:52:04.140 に答える
0

これを試してください。サンプル応答では、dは属性であり、JSONObject ではありません。そのため、最初に文字列を解析してから、d 文字列を JSONObject として変換する必要があります。

public static JSONObject DotNetJSONResponse(String raw) throws Exception {
    JSONObject joRaw;
    try {
        joRaw = new JSONObject(raw);
        String t=joRaw.getString("d");
        System.out.println(t);                  \\< ---------- 
        JSONObject joD = new JSONObject(t);
        return joD;
    } catch (JSONException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
        return null;
    }

}
于 2012-08-16T03:52:27.023 に答える