字符串到数组Java到Json对象

字符串到数组Java到Json对象,java,json,Java,Json,我有一个包含json对象的Java字符串,我不知道如何从中获取这个json对象 我的字符串是这样的: String myString = "[1,\"{\\\"Status\\\":0,\\\"InstanceNumber\\\":9}\"]"; 如何从该字符串获取json对象?请确保您需要使用lieJackson或Gson库 当我没有复杂的东西时,我主要与gson一起工作。 这里是你要求的结果。我假设您没有要转换为的类型(因为我正在接受对象) 代码如下: import com.google.

我有一个包含json对象的Java字符串,我不知道如何从中获取这个json对象

我的字符串是这样的:

String myString = "[1,\"{\\\"Status\\\":0,\\\"InstanceNumber\\\":9}\"]";

如何从该字符串获取json对象?

请确保您需要使用lieJacksonGson

当我没有复杂的东西时,我主要与gson一起工作。 这里是你要求的结果。我假设您没有要转换为的类型(因为我正在接受对象)

代码如下:

import com.google.gson.Gson;

public class Json {

    public static void main(String[] args) {
       Gson g = new Gson();
       String myString = "[1,\"{\\\"Status\\\":0,\\\"InstanceNumber\\\":9}\"]";
       Object p = g.fromJson(myString, Object.class);
       System.out.println(p.toString());
    }

}
以下是输出:

run:
[1.0, {"Status":0,"InstanceNumber":9}]
BUILD SUCCESSFUL (total time: 0 seconds)
您可能希望按照自己的意愿操作输出对象(我刚刚打印出来)。
注意:别忘了将gsonjar添加到类路径中。

确保您需要使用库lieJacksongson

当我没有复杂的东西时,我主要与gson一起工作。 这里是你要求的结果。我假设您没有要转换为的类型(因为我正在接受对象)

代码如下:

import com.google.gson.Gson;

public class Json {

    public static void main(String[] args) {
       Gson g = new Gson();
       String myString = "[1,\"{\\\"Status\\\":0,\\\"InstanceNumber\\\":9}\"]";
       Object p = g.fromJson(myString, Object.class);
       System.out.println(p.toString());
    }

}
以下是输出:

run:
[1.0, {"Status":0,"InstanceNumber":9}]
BUILD SUCCESSFUL (total time: 0 seconds)
您可能希望按照自己的意愿操作输出对象(我刚刚打印出来)。
注意:不要忘记将gsonjar添加到类路径。

您可以使用任何Json映射框架将字符串反序列化为Java对象。下面的示例显示了如何使用
Jackson

String myString = "[1,\"{\\\"Status\\\":0,\\\"InstanceNumber\\\":9}\"]";
ObjectMapper mapper = new ObjectMapper();
List<Object> value = mapper.readValue(myString, new TypeReference<List<Object>>() {});
Map<String, Object> map = mapper.readValue(value.get(1).toString(), new TypeReference<Map<String, Object>>() {});
System.out.println(map);
String myString=“[1,\“{\\\”Status\\\”:0,\\\\“InstanceNumber\\\”:9}\”];
ObjectMapper mapper=新的ObjectMapper();
List value=mapper.readValue(myString,newTypeReference(){});
Map Map=mapper.readValue(value.get(1.toString(),new-TypeReference(){});
系统输出打印项次(map);

文档。

您可以使用任何Json映射框架将字符串反序列化为Java对象。下面的示例显示了如何使用
Jackson

String myString = "[1,\"{\\\"Status\\\":0,\\\"InstanceNumber\\\":9}\"]";
ObjectMapper mapper = new ObjectMapper();
List<Object> value = mapper.readValue(myString, new TypeReference<List<Object>>() {});
Map<String, Object> map = mapper.readValue(value.get(1).toString(), new TypeReference<Map<String, Object>>() {});
System.out.println(map);
String myString=“[1,\“{\\\”Status\\\”:0,\\\\“InstanceNumber\\\”:9}\”];
ObjectMapper mapper=新的ObjectMapper();
List value=mapper.readValue(myString,newTypeReference(){});
Map Map=mapper.readValue(value.get(1.toString(),new-TypeReference(){});
系统输出打印项次(map);

文档。

我建议使用简单的普通库。在
JSONArray
中传递字符串,然后获取
JSONObject
。例如,如下所示:

String myString = "[1,\"{\\\"Status\\\":0,\\\"InstanceNumber\\\":9}\"]";
JSONArray js = new JSONArray(myString);
System.out.println(js);
JSONObject obj = new JSONObject(js.getString(1));
System.out.println(obj);
输出:

  • [1,“{\'状态\”:0,\'实例编号\”:9}”]
  • {“状态”:0,“实例编号”:9}

可下载jar:

我建议使用简单的普通库。在
JSONArray
中传递字符串,然后获取
JSONObject
。例如,如下所示:

String myString = "[1,\"{\\\"Status\\\":0,\\\"InstanceNumber\\\":9}\"]";
JSONArray js = new JSONArray(myString);
System.out.println(js);
JSONObject obj = new JSONObject(js.getString(1));
System.out.println(obj);
输出:

  • [1,“{\'状态\”:0,\'实例编号\”:9}”]
  • {“状态”:0,“实例编号”:9}

可下载jar:

使用gson.jar或json.jar。它们有JsonObject的构造函数,您可以在其中传递字符串。请看这个答案,使用gson.jar或json.jar。它们有JsonObject的构造函数,您可以在其中传递字符串。请看这个答案,很好,很好,很好