我有一个包含json对象的Java String,我不知道如何从中获取这个json对象?
我的字符串是这样的:
String myString = "[1,\"{\\\"Status\\\":0,\\\"InstanceNumber\\\":9}\"]";
如何从此String中获取json对象?
答案 0 :(得分:1)
肯定您需要使用库杰克逊或 Gson 。
当我没有复杂的东西时,我主要用 gson 工作。 所以这里是你要求的输出。我想你没有你要转换的类型(因为我正在使用Object)。
以下是代码:
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)
您可能希望根据需要操作输出对象(我只是将其打印出来)。 注意:不要忘记将 gson jar添加到类路径中。
答案 1 :(得分:0)
您可以使用任何Json映射框架将String反序列化为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);
Here's文档。
答案 2 :(得分:0)
我会推荐简单的普通org.json库。将字符串传递到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,&#34; {\&#34; Status \&#34;:0,\&#34; InstanceNumber \&#34;:9}&#34;]
- {&#34;状态&#34;:0,&#34;实例号&#34;:9}