java - Java中如何从String中获取JSON对象?

标签 java string json

我是 JSON 新手,请原谅我的无知。我需要获取像这样的 JSON 对象:

jsonString =
{
    "Key": {"AppID":"19","Username":"sompoRoot","Password":"11223344"},
    "deviceList": ["43ab48a0eb9f950d9c2498f8c2cfa1e5b8a62687479cfad849bbc455b88e67b6",
                   "43ab48a0eb9f950d9c2498f8c2cfa1e5b8a62687479cfad849bbc455b88e67b6"],
    "aps": {"alert":"merhaba dunya","sound":"default","badge":"10",
    "dictionaryArray":["a","b"],
    "production":"false"}   
}

我将从数据库获取AppID、用户名和密码。 deviceList 是这样的:43ab48a0eb9f950d9c2498f8c2cfa1e5b8a62687479cfad849bbc455b88e67b6、43ab48a0eb9f950d9c2498f8c2cfa1e5b8a62687479cfad849bbc455b88e 67b6...我将从文本输入中获得警报、声音、徽章字典数组和生成。我得到并转换 String 这些参数。我从网上搜索,但我认为它更复杂,我怎样才能得到像这样的JSON,谢谢。

最佳答案

您在评论中说每个字段都有一个单独的字符串。我建议按照以下方式构建一个包含所有所需字段的 class (因为 aps 似乎是一个单独的实体,请为其创建一个单独的类):

public class MyClass {
    private String key;
    private List<String> deviceList;
    private Aps aps;
}

public class Aps {
    private String alert;
    private String sound;
    private long badge;
    private List<String> dictionaryArray;
    private boolean production;
}

有几个库可以帮助您将 Java 对象转换为 JSON,其中之一是 Jackson's ObjectMapper class 。您可以下载该库from their website或者,如果您在项目中使用 Maven,您可以找到对 mvnrepository.com 的依赖项。 .

使用ObjectMapper:

ObjectMapper objectMapper = new ObjectMapper();
MyClass myClass = new MyClass();
// .. populate the fields
String jsonString = objectMapper.writeValueAsString(myClass);

您必须将其包含在 try-catch block 中。就是这样:jsonString 现在将您的字段转换为 JSON 字符串。

<小时/>

编辑:您可以使用 Google GSON 代替 Jackson ,其工作方式大致相同。

关于java - Java中如何从String中获取JSON对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18656697/

相关文章:

java - 根据 application.yml 中的属性使用 Spring Boot 进行注入(inject)

java - 从 mainactivity 中的另一个类执行 asynctask

java - 如何在部署级别的 JPA persistence.xml 中指定不同数量的持久性单元

regex - 正则表达式"\\|"在 strsplit 中

ios - 意外发现 nil 但我可以打印该值

java - 递归方法查找数字中出现的次数

java - 字符串操作 - 还有其他有效的方法吗?

java - 比较 Java 中的字符串 .equals()

c# - Json.NET:以 block 的形式写入来自 Controller 的响应

c# - .Net Core 2.0 替代 HttpResponseBase