字符串到Array Java到Json对象

时间:2017-08-04 10:56:50

标签: java json

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

我的字符串是这样的:

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

如何从此String中获取json对象?

3 个答案:

答案 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}
  •   

可下载jar:http://mvnrepository.com/artifact/org.json/json