का उपयोग कर एक जेसन ऑब्जेक्ट बनाना, मैं जैक्सन का उपयोग करके नीचे दिए गए उदाहरण की तरह एक जेसन सरणी कैसे बना सकता हूं।जैक्सन
मैंने ऑब्जेक्टमैपर का उपयोग करने की कोशिश की, लेकिन यह सही प्रतीत नहीं होता है।
try (DirectoryStream<Path> ds = Files.newDirectoryStream(path)) {
for (Path file : ds) {
System.out.println("name:"+file.getFileName()+
"\n"+
"mime:"+Files.probeContentType(file)+
"\n"+
"locked:"+!Files.isWritable(file));
}
} catch (IOException e) {
System.err.println(e);
}
आखिरकार मैं एक जेसन बनाउंगा जिसमें निम्न मान हैं।
* - (int) size file size in b. required
* - (int) ts file modification time in unix time. required
* - (string) mime mimetype. required for folders, others - optionally
* - (bool) read read permissions. required
* - (bool) write write permissions. required
* - (bool) locked is object locked. optionally
* - (bool) hidden is object hidden. optionally
* - (string) alias for symlinks - link target path relative to root path. optionally
* - (string) target for symlinks - link target path. optionally
यहां एक उदाहरण जेसन प्रदान किया गया था।
"files": [
{
"mime": "directory",
"ts": 1334071677,
"read": 1,
"write": 0,
"size": 0,
"hash": "l1_Lw",
"volumeid": "l1_",
"name": "Demo",
"locked": 1,
"dirs": 1
},
{
"mime": "directory",
"ts": 1334071677,
"read": 1,
"write": 0,
"size": 0,
"hash": "l1_Lw",
"volumeid": "l1_",
"name": "Demo",
"locked": 1,
"dirs": 1
},
{
"mime": "directory",
"ts": 1340114567,
"read": 0,
"write": 0,
"size": 0,
"hash": "l1_QmFja3Vw",
"name": "Backup",
"phash": "l1_Lw",
"locked": 1
},
{
"mime": "directory",
"ts": 1310252178,
"read": 1,
"write": 0,
"size": 0,
"hash": "l1_SW1hZ2Vz",
"name": "Images",
"phash": "l1_Lw",
"locked": 1
},
{
"mime": "application\/x-genesis-rom",
"ts": 1310347586,
"read": 1,
"write": 0,
"size": 3683,
"hash": "l1_UkVBRE1FLm1k",
"name": "README.md",
"phash": "l1_Lw",
"locked": 1
}
]
संपादित करें 1
Map<String, Object> filesMap = new HashMap<>();
List<Object> files = new ArrayList<Object>();
System.out.println("\nNo filter applied:");
try (DirectoryStream<Path> ds = Files.newDirectoryStream(path)) {
for (Path file : ds) {
Map<String, Object> fileInfo = new HashMap<>();
fileInfo.put("name", file.getFileName().toString());
// Prints Files in Director
// Files.getAttribute(file,"size");
System.out.println("name:" + file.getFileName().toString() +
"\n" +
"mime:" + Files.probeContentType(file) +
"\n" +
"locked:" + !Files.isWritable(file));
ObjectMapper mapper = new ObjectMapper();
String json = mapper.writeValueAsString(fileInfo);
files.add(json);
}
} catch (IOException e) {
System.err.println(e);
}
files.toArray();
filesMap.put("files", files);
ObjectMapper mapper = new ObjectMapper();
String jsonString;
try {
jsonString = mapper.writeValueAsString(filesMap);
} catch (IOException e) {
jsonString = "fail"; //To change body of catch statement use File | Settings | File Templates.
}
निम्नलिखित json जो करीब है बाहर रखता है, लेकिन मैं पहले और बाद में क्यों अतिरिक्त उद्धरण को समझ नहीं सकता {}।
{"files":["{\"name\":\"32C92124-EFCF-42C1-AFD2-8B741AE6854B.jpg\"}","{\"name\":\"58D5B83F-4065-4D6E-92BE-8181D99CB6CB.jpg\"}","{\"name\":\"7B1464A0-FBA1-429E-8A39-3DE5B539FBF8.jpg\"}","{\"name\":\"888159CF-45BE-475F-8C6A-64B3E1D97278.jpg\"}"]}
अंतिम उत्तर
Map<String, Object> filesMap = new HashMap<>();
List<Object> files = new ArrayList<Object>();
System.out.println("\nNo filter applied:");
try (DirectoryStream<Path> ds = Files.newDirectoryStream(path)) {
for (Path file : ds) {
Map<String, Object> fileInfo = new HashMap<>();
fileInfo.put("name", file.getFileName().toString());
System.out.println("name:" + file.getFileName().toString() +
"\n" +
"mime:" + Files.probeContentType(file) +
"\n" +
"locked:" + !Files.isWritable(file));
files.add(fileInfo);
}
} catch (IOException e) {
System.err.println(e);
}
files.toArray();
filesMap.put("files", files);
ObjectMapper mapper = new ObjectMapper();
String jsonString;
try {
jsonString = mapper.writeValueAsString(filesMap);
} catch (IOException e) {
jsonString = "fail";
}
आपका प्रश्न एक वास्तविक प्रश्न अनुपलब्ध प्रतीत होता है। – Aurand
क्षमा करें, इंटरनेट मुद्दों के साथ-साथ मुझे आज रात भी लगता है कि मुझे लगता है कि मैं इसे जोड़ना भूल गया। : पी क्या अब और अधिक समझ में आता है? – zmanc
मैं बहुत उलझन में हूँ। यहां 'ऑब्जेक्टमैपर' का कोई स्पष्ट उपयोग नहीं है। क्या आप 'ऑब्जेक्टमैपर' या क्या उपयोग करने के लिए कुछ परिवर्तित करने की कोशिश कर रहे हैं? –