【发布时间】:2018-04-15 21:52:46
【问题描述】:
JSON1:
{
"array1": [
{
"id": "1",
"Name": "Xytrex Co.",
"Description": "Industrial Cleaning Supply Company",
"Account Number": "ABC15797531",
"Address": {
"Permanent": {
"Street": "st.road",
"pin": "789723"
},
"Temporary": {
"Street": "st.road",
"pin": "789723"
}
}
},
{
"id": "2",
"Name": "Xytrex Co.",
"Description": "Industrial Cleaning Supply Company",
"Account Number": "ABC15797531",
"Address": {
"Permanent": {
"Street": "st.road",
"pin": "789723"
},
"Temporary": {
"pin": "789723"
}
}
}
]
}
JSON2:
{
"array2": [
{
"id": "1",
"Name": "Xytrex Co.",
"Description": "Industrial Cleaning Supply Company",
"Account Number": "ABC15797531",
"Address": {
"Permanent": {
"Street": "st.road",
"pin": "789723"
},
"Temporary": {
"Street": "st.road",
"pin": "789723"
}
}
},
{
"id": "2",
"Name": "Xytrex Co.",
"Description": "Industrial Cleaning Supply Company",
"Account Number": "ABC15797531",
"Address": {
"Permanent": {
"Street": "st.road",
"pin": "789723"
},
"Temporary": {
"Street": "st.road",
"pin": "789723"
}
}
}
]
}
我使用的代码:
package com.company;
import com.google.gson.JsonArray;
import com.google.gson.JsonObject;
import org.skyscreamer.jsonassert.JSONAssert;
import org.skyscreamer.jsonassert.JSONCompareMode;
import com.google.gson.JsonParser;
import org.skyscreamer.jsonassert.JSONCompareMode;
import java.io.FileNotFoundException;
import java.io.FileReader;
public class Main {
public static void main(String[] args) throws FileNotFoundException {
Main cmp = new Main();
cmp.myTest();
}
public void myTest() throws FileNotFoundException {
JsonParser Parser = new JsonParser();
JsonObject obj1 = (JsonObject) Parser.parse(new
FileReader("/home/cloudera/Desktop/SampleJson/src/JSON1.json"));
JsonArray array1 = obj1.getAsJsonArray("array1");
JsonObject obj2 = (JsonObject)Parser.parse(new
FileReader("/home/cloudera/Desktop/SampleJson/src/JSON2.json"));
JsonArray array2 = obj1.getAsJsonArray("array2");
JSONAssert.assertEquals(array1, array2, JSONCompareMode.STRICT);
}
}
我所期望的结果是,JSON1 下的 "id":"2" 或类似的东西中缺少密钥 Street,这提供了有助于我们识别缺少的密钥以执行 Junit 测试的正确信息。
我在 IDE 中遇到的错误是
"java: cannot access org.json.JSONArray
class file for org.json.JSONArray not found".
请帮我解决这个问题。
【问题讨论】:
-
你确定你是从正确的包中导入你的类吗?也许导入为“com.google.gson.JsonArray”应该像“org.json.something.JsonArray”
-
@StéphaneAmmar
org.json.JSONArray也是JSON Simple中提供的一个类