Как сравнить значения 2 файлов JSON в Java - PullRequest
0 голосов
/ 25 октября 2018

Я работаю над файлами JSON, чтобы сравнить их данные.Я только хочу проверить, совпадает ли значение 1 json с файлом 2 json.оба имеют одинаковые имена ключей и порядок.

Данные файла JSON выглядят так:

{   "ab_property": [
{
  "name": "abc",
  "value": "1"
},

Ответы [ 2 ]

0 голосов
/ 25 октября 2018

JSONassert - это популярная библиотека для сравнения объектов JSON.Если два файла идентичны (ключи и значения), он соответствует вашему варианту использования.

Пример использования org.apache.commons.io.IOUtils для чтения файлов:

String expected = IOUtils.toString(new File("/path/to/expected").toURI(), Charset.defaultCharset()));
String actual = IOUtils.toString(new File("/path/to/actual").toURI(), Charset.defaultCharset()));
JSONAssert.assertEquals(expected, actual, false);
0 голосов
/ 25 октября 2018

Я решил вашу проблему. Также вы можете указать значение соответствия, используя ключ вместо цикла for.

import java.io.FileReader;
import java.util.Set;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;

public class compareJsonFile {

    public static void main(String[] args) throws Exception {
        JSONParser parser = new JSONParser();
        try {
            Object obj = parser.parse(new FileReader("/home/chandrakant/Desktop/json1.json"));
            Object obj1 = parser.parse(new FileReader("/home/chandrakant/Desktop/json2.json"));
            JSONObject jsonObject = (JSONObject) obj;
            JSONObject jsonObject1 = (JSONObject) obj1;
            Set<String> s = jsonObject.keySet();
            for (String str : s) {
                System.out.println("key:" + str + " : value1:" + jsonObject.get(str) + ":value2:" + jsonObject1.get(str));
                //compare value of json1 with json2
            }

        } catch (Exception e) {
            e.printStackTrace();
        }
    }

}

Если что-то пропустите, пожалуйста, прокомментируйте меня.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...