Решите класс для десериализации Джексона, основанный на значении JSON определенного ключа [duplicate]

, если вы пытаетесь записать файл данных pandas в файл с использованием json-формата, я бы рекомендовал этот

destination='filepath'
saveFile = open(destination, 'w')
saveFile.write(df.to_json())
saveFile.close()
2
задан user3748525 17 February 2016 в 12:50
поделиться

1 ответ

import java.io.IOException;

public class BeingDeserializer extends JsonDeserializer<Being> {

  @Override
  public Expertise deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException, JsonMappingException {

    JsonNode node = jp.getCodec().readTree(jp);
    String beingName = node.get("name").asText();
    JsonNode valueNode = node.get("value");
    BeingName beingByName = ExpertiseName.getBeingByName(beingName);
    if(beingByName ==null) {
      throw new JsonMappingException("Invalid Being " + beingName);
    }

    Being being =  JsonUtils.getObjectFromJsonNode(valueNode,
            ExpertiseFactory.getExpertise(beingByName).getClass());
    return being;
  }
}

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

1
ответ дан mkobit 20 August 2018 в 23:47
поделиться
  • 1
    Спасибо, попробуй это. до сих пор использовал хак. – user3748525 31 May 2016 в 05:13
Другие вопросы по тегам:

Похожие вопросы: