上下文:我正在开发一个类似于 CMS 系统的中间人服务。我在服务器上放置了一个完整的复杂 json 文件,然后我需要将其提供给需要 json 内容的客户。 (我们暂时忽略验证部分)
我有一个位于顶层的名称、版本和内容字段。内容(章节)以嵌套复杂对象数组的形式存在(约 5 层深)。
{
"name": "MyCourse",
"version": 12345,
"chapters": [
{
"name": "Chapter01",
"content": {
"menu": {
"id": "Chapter01_EndMenu",
"file": "ch1_end_op.wav"
},
"score": {
"id": "Chapter01_Score",
"files": [....
我尝试过的(和有效的):构建我的 pojo 以镜像 json 结构,其中内容(章节)作为复杂对象列表存在。对此调用 gson 解析器是有效的。
我想做的事情:有一个更简单的 pojo,只有名称、版本和内容,其中内容仅将数组表示形式(章节和嵌套对象)存储为一个字符串。
我尝试将 pojo 中的内容字段定义为字符串,并设置 @SerializedName 注释以强制 gson 将数组作为字符串解析到其中,但这不起作用。
是否可以部分获取 json 作为字段,并将其余部分(嵌套数组)放入我的 pojo 中的字符串字段中?
最佳答案
在 JSONObject
中很简单,您可以使用键获取 JSON 字符串。
String jsonString = "{ \"name\": \"MyCourse\", \"version\": 12345, \"chapters\": [ { \"name\": \"Chapter01\"}]}";
JSONObject jsonObject = new JSONObject(jsonString);
Details details = new Details();
details.setName(jsonObject.get("name"));
details.setVersion(jsonObject.get("version"));
details.setChapters(jsonObject.get("chapters"));
你可以试试这个。
关于java - 将嵌套的 json 数据解析为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30449364/