Конвертировать JSON в Map - PullRequest
165 голосов
/ 14 января 2009

Как лучше всего преобразовать код JSON следующим образом:

{ 
    "data" : 
    { 
        "field1" : "value1", 
        "field2" : "value2"
    }
}

на карте Java, в которой используются ключи (field1, field2) и значения для этих полей (value1, value2).

Есть идеи? Должен ли я использовать Json-lib для этого? Или лучше, если я напишу свой собственный парсер?

Ответы [ 14 ]

1 голос
/ 18 марта 2016

Еще одна альтернатива - json-simple , которую можно найти в Maven Central :

(JSONObject)JSONValue.parse(someString); //JSONObject is actually a Map.

Артефакт имеет размер 24 КБ и не имеет других зависимостей времени выполнения.

0 голосов
/ 26 октября 2017
import net.sf.json.JSONObject

JSONObject.fromObject(yourJsonString).toMap
0 голосов
/ 10 января 2016

Библиотека Underscore-java может конвертировать строку json в хэш-карту. Я поддерживаю проект.

Пример кода:

import com.github.underscore.lodash.U;
import java.util.*;

public class Main {

    @SuppressWarnings("unchecked")
    public static void main(String[] args) {
        String json = "{"
            + "    \"data\" :"
            + "    {"
            + "        \"field1\" : \"value1\","
            + "        \"field2\" : \"value2\""
            + "    }"
            + "}";

       Map<String, Object> data = (Map) U.get((Map<String, Object>) U.fromJson(json), "data");
       System.out.println(data);

       // {field1=value1, field2=value2}
    }
}
0 голосов
/ 12 июня 2009

JSON to Map всегда будет типом данных string / object. я получил GSON lib от Google.

работает очень хорошо, минимальное требование - JDK 1.5.

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