Rumah  >  Artikel  >  Laluan tidak boleh ditemui menggunakan java

Laluan tidak boleh ditemui menggunakan java

PHPz
PHPzke hadapan
2024-02-14 10:51:181175semak imbas

Tidak dapat mencari laluan menggunakan Safe Java? jangan risau! Editor PHP Xinyi memberi anda penyelesaian. Semasa pembangunan Java, anda kadangkala menghadapi masalah bahawa laluan yang ditentukan tidak dapat ditemui Ini mungkin disebabkan oleh tetapan laluan fail yang salah atau fail tidak wujud. Artikel ini akan memberi anda butiran tentang cara menyelesaikan masalah ini dan menyediakan beberapa penyelesaian biasa. Mari kita meneroka bersama-sama!

Kandungan soalan

Ini kod saya, saya cuba tetapkan nilai dalam format json:

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

Di sini saya perlu menetapkan data dalam pengguna dan lulus tetapi ia disertakan dalam petikan berganda ("").

Saya mencuba jalan dengan detail.user tetapi tidak berjaya:

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(); 
    }
}

Saya cuba menggunakan kod di atas untuk menetapkan data. Tetapi saya menerima exception.

Penyelesaian

Rujuk kod berikut dan cuba kemas kini objek anda. Anda boleh menggunakan gson atau jackson untuk mengendalikan objek json. Sila buat kerja sebelum menghantar soalan.

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
    }
}
}

Atas ialah kandungan terperinci Laluan tidak boleh ditemui menggunakan java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:stackoverflow.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam