Мне нужно было это сделать и в итоге портировал программу на PHP, написанную Кейтом Мэтьюсом, которую вы можете найти на http://www.numbertheory.org/php/php.html , в Python , Сначала я использовал массивы Numpy, но столкнулся с проблемами с целыми переполнениями, поэтому переключился на матрицы Sympy, которые используют произвольные прецизионные численные представления.
Код выпущен на GitHub в https://github.com/ tclose / Diophantine в соответствии с лицензией MIT, поэтому не стесняйтесь использовать его и дайте мне знать, если у вас возникнут проблемы (извините, что это не лучше документировано). Мастер-ветвь использует Sympy, но вы можете получить доступ к исходной реализации Numpy в ветке «numpy», которая, похоже, работает нормально для разумно разреженных систем.
Если вы в конечном итоге используете ее для научной публикации, пожалуйста, цитируйте Кит (и, возможно, добавить ссылку на репозиторий GitHub).
Вместо JsonNode
прочитайте Map
и используйте стандарт Map.put()
для изменения большего объекта:
ObjectMapper mapper = new ObjectMapper().enable(SerializationFeature.INDENT_OUTPUT);
TypeReference<Map<String, Object>> type = new TypeReference<>() {};
Map<String, Object> biggerMap = mapper.readValue(biggerJson, type);
Map<String, Object> smallerMap = mapper.readValue(smallerJson, type);
biggerMap.put("additional_info", smallerMap);
String outJson = mapper.writeValueAsString(biggerMap);
System.out.println(outJson);
выведет:
{
"name" : {
"first" : "Tatu",
"last" : "Saloranta"
},
"title" : "Jackson founder",
"company" : "FasterXML",
"additional_info" : {
"country" : "My country",
"hobbies" : "some hobbies"
}
}