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!
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
.
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!