es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

NullPointerException en Neo4J durante la importación de apoc.import.json.

Estoy intentando importar este archivo JSON e crear nodos automáticamente a partir de él, pero estoy obteniendo el siguiente error:

Failed to invoke procedure `apoc.import.json`: Caused by: java.lang.NullPointerException

Mi comando:

CALL apoc.import.json('https://drive.google.com/uc?id=1MVMAZbrl_nIGruoUsLOkcrw1jcgRli-U')

Cuando está guardado localmente dentro de la carpeta de importación:

CALL apoc.import.json('business_types (1).json')

Revisa este archivo para verificar el formato correcto del archivo proporcionado: file

Formato JSON:

{
    "B2B": [
        {
            "q04ijnd6wjkcgg1cnyq04ijnd0kj42py": [
                "mumbai",
                "lucknow",
                "delhi"
             ]
         }
     ],
    "B2C": [
        {
            "q04ijnd6wjkcgg1cnyq04ijnd0kj42py": [
                "mumbai",
                "lucknow",
                "delhi"
             ]
         }
     ]
}

Resultado esperado: imagen

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    El problema parece estar en el formato del archivo JSON. El archivo JSON debería tener un array de nivel superior que contenga objetos con una propiedad label y una propiedad properties. La propiedad label determina la etiqueta del nodo y la propiedad properties contiene pares clave-valor para las propiedades del nodo.

    Aquí tienes un ejemplo de cómo se debería formatear el archivo JSON:

    [
      {
        "label": "B2B",
        "properties": {
          "q04ijnd6wjkcgg1cnyq04ijnd0kj42py": ["mumbai", "lucknow", "delhi"]
        }
      },
      {
        "label": "B2C",
        "properties": {
          "q04ijnd6wjkcgg1cnyq04ijnd0kj42py": ["mumbai", "lucknow", "delhi"]
        }
      }
    ]
    

    Una vez que el archivo JSON esté formateado correctamente, se puede utilizar la siguiente consulta Cypher para importar los datos:

    CALL apoc.load.json('file:///path/to/business_types.json') YIELD value
    UNWIND value as businessType
    MERGE (bt:BusinessType {name: businessType.label})
    UNWIND keys(businessType.properties) as propertyKey
    SET bt[propertyKey] = businessType.properties[propertyKey]
    

    Esta consulta carga el archivo JSON en Neo4j, crea nodos con la etiqueta BusinessType y establece las propiedades del nodo en función de los pares clave-valor en el objeto properties del archivo JSON.

Comments are closed.