有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Android将字符串转换为JSON

我需要关于如何在Android中开发一个方法的建议,该方法必须选择一个加载了JSON数据的字符串,然后将其转换回JSON

目前,我已经编写了以下程序,但我不确定我是否在正确的轨道上

private void convert_JSON()
    {
    String json;
    //funcions per a cridar el string amb JSON i convertir-lo de nou a JSON
    JSONArray jsas = new JSONArray(); 
    for (int i =0; i < jsas.length(); i++)
    {
        JSONObject message = jsas.getJSONObject(i);
        String content = message.getString("content");
    }

    }

JSON在另一种方法中加载到字符串中:

private void read_JSON(String json)
    {

        JSONObject jObject = new JSONObject(json);
        JSONArray jso3 = new JSONArray (jObject.getString("Nombres_Hijos"));
        String name = jso3.getString("Nombre");
        System.out.println(name);

        String surname = jso3.getString("Apellidos");
        System.out.println(surname);

        int date = jso3.getInt("Año_nacimiento");
        System.out.println(date);

        JSONArray jsa2 = jso3.getJSONArray ("Nombres_Hijos");
        String names = jsa2.toString();
        for (int i=0; i < jsa2.length(); i++)
        {
            System.out.println(jsa2.getString(i));  
        }
        jso3.toString(json);
    }

最后,JSON是在MainActivity中创建的。java,还不是一个可以正常工作的拆分文件:

private void create_JSON(String json)
    {
        JSONObject jso = new JSONObject();

        try {
            jso.put("Nombre","Miguel");
            jso.put("Apellidos", "Garcia");
            jso.put("Año_nacimiento", 1990);
            JSONArray jsa = new JSONArray();
            jsa.put("Blur");
            jsa.put("Clur");
            jso.put("Nombres_Hijos", jsa);

        } catch (JSONException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return jso.toString();

简而言之:我想知道的是,我的convert_JSON方法是否正确,或者我误解了它的工作原理

非常感谢你的帮助

你诚挚的

毛罗


共 (3) 个答案

  1. # 1 楼答案

    可以使用构造函数String创建JSONObject

    JSONObject json = new JSONObject(myString);
    

    要将JSONObject转换为String,只需使用toString()方法:

    String myString = json.toString();
    

    此外,如果试图从JSONObject中获取特定的String值,可以执行以下操作:

    if (json.has("content"))
    {
        String content = json.getString("content");
        //do something with content string
    }
    

    最后,如果您不太习惯使用JSONObject,我建议使用droidQuery提供的工具来帮助您进行分析,例如:

    Object[] array = $.toArray(myJSONArray);
    

    Map<String, ?> map = $.map(myJSONObject);
    
  2. # 2 楼答案

    如果你想要一个纯复制/粘贴的例子,看看here 或者,我建议使用许多有良好文档记录的库中的一个。我个人最喜欢的是GSON

    网上有很多关于如何使用这个的例子

  3. # 3 楼答案

    可以使用以下JSONObject(String json)构造函数将json字符串转换回json:

    JSONObject jsonObject = new JSONObject(jsonString);
    

    只要把它放在trycatch块中,你就可以开始了:)