Maison  >  Article  >  Le chemin ne peut pas être trouvé en utilisant Java

Le chemin ne peut pas être trouvé en utilisant Java

PHPz
PHPzavant
2024-02-14 10:51:181175parcourir

Vous ne trouvez pas le chemin à l'aide de Safe Java ? Ne vous inquiétez pas! L'éditeur PHP Xinyi vous propose une solution. Lors du développement Java, vous rencontrez parfois le problème que le chemin spécifié est introuvable. Cela peut être dû à des paramètres de chemin de fichier incorrects ou au fait que le fichier n'existe pas. Cet article vous expliquera comment résoudre ce problème et proposera des solutions courantes. Explorons ensemble !

Contenu de la question

Voici mon code, j'essaye de définir la valeur au format json :

{"details": "{\"user\":\"user1\",\"password\":\"1234\"}"}

Ici, je dois définir les données dans user et pass mais elles sont placées entre guillemets doubles ("").

J'ai essayé le chemin avec detail.user mais ça ne marche pas :

ObjectMapper mapper = new ObjectMapper(); 
ObjectNode node = (ObjectNode) mapper.readTree(new File(templatePath)); 

// System.out.println(node); 

Configuration config = Configuration.builder()
    .jsonProvider(new JacksonJsonNodeJsonProvider())
    .mappingProvider(new JacksonMappingProvider()).build(); 
    
json = JsonPath.using(config).parse(node);

for (int i = 0; i < list.size(); i++) {
    String x = list.get(i); 
    arr = x.split(": "); 
    String newHeader = arr[0].replace("|", "."); 
    
    if (newHeader.contains("[")) { 
        String nHeader = "$." + newHeader; 
        String actualVal; 
        if (arr.length >= 2) { 
            actualVal = arr[1]; 
        } else { 
            actualVal = ""; 
        } 
        json.set(nHeader, actualVal).jsonString(); 
    } else { 
        String actualVal; 
        if (arr.length >= 2) { 
            actualVal = arr[1]; 
        } else { 
            actualVal = ""; 
        } 
        json.set(newHeader, actualVal).jsonString(); 
    }
}

J'ai essayé d'utiliser le code ci-dessus pour définir les données. Mais j'ai reçu exception.

Solution de contournement

Référez-vous au code suivant et essayez de mettre à jour votre objet. Vous pouvez utiliser gson ou jackson pour gérer les objets json. Veuillez faire un peu de travail avant de poster une question.

import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;

public class JsonUpdateExample {

public static void main(String[] args) {
    // Sample JSON string
    String jsonString = "{\"name\":\"John\", \"age\":25, \"city\":\"New York\"}";

    // Field to update
    String fieldToUpdate = "age";
    
    // New value for the field
    int newValue = 30;

    // Update the JSON
    String updatedJson = updateJsonField(jsonString, fieldToUpdate, newValue);

    // Print the updated JSON
    System.out.println(updatedJson);
}

private static String updateJsonField(String jsonString, String fieldToUpdate, int newValue) {
    try {
        // Create ObjectMapper
        ObjectMapper objectMapper = new ObjectMapper();

        // Read the JSON string into a JsonNode
        JsonNode jsonNode = objectMapper.readTree(jsonString);

        // Update the field
        ((ObjectNode) jsonNode).put(fieldToUpdate, newValue);

        // Convert the updated JsonNode back to a JSON string
        return objectMapper.writeValueAsString(jsonNode);
    } catch (Exception e) {
        e.printStackTrace();
        return jsonString; // return the original JSON in case of an error
    }
}
}

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer