java csv to json
V 1.
https://stackoverflow.com/questions/9524191/converting-an-csv-file-to-a-json-object-in-java
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.dataformat.csv.CsvMapper;
import com.fasterxml.jackson.dataformat.csv.CsvSchema;
import org.json.simple.JSONArray;
import org.json.simple.parser.JSONParser;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.File;
import java.util.List;
import java.util.Map;
public class CsvToJson {
private static final Logger log = LoggerFactory.getLogger(UtilsFormat.class);
private static CsvToJson instance;
public static JSONArray convert(File input) throws Exception {
JSONParser parser = new JSONParser();
CsvSchema csvSchema = CsvSchema.builder().setUseHeader(true).build();
CsvMapper csvMapper = new CsvMapper();
// Read data from CSV file
List<? extends Object> readAll = csvMapper.readerFor(Map.class).with(csvSchema).readValues(input).readAll();
ObjectMapper mapper = new ObjectMapper();
JSONArray jsonObject = (JSONArray) parser.parse(mapper.writerWithDefaultPrettyPrinter().writeValueAsString(readAll));
System.out.print(jsonObject.toString());
return new JSONArray();
}
}
VV 2.
we can convert a JSON Array to CSV format.
import java.io.File;
import org.apache.commons.io.FileUtils;
import org.json.*;
public class ConvertJsonToCSVTest {
public static void main(String[] args) throws JSONException {
String jsonArrayString = "{\"fileName\": [{\"first name\": \"Ravi\",\"last name\": \"Chandra\",\"location\": \"Bangalore\"}]}";
JSONObject output;
try {
output = new JSONObject(jsonArrayString);
JSONArray docs = output.getJSONArray("fileName");
File file = new File("EmpDetails.csv");
String csv = CDL.toString(docs);
FileUtils.writeStringToFile(file, csv);
System.out.println("Data has been Sucessfully Writeen to "+ file);
System.out.println(csv);
}
catch(Exception e) {
e.printStackTrace();
}
}
}
3.
Console Output
[ { “id”: 1, “language”: “Java”, “edition”: “third”, “author”: “Herbert Schildt”, “streetAddress”: 126, “city”: “San Jone”, “state”: “CA”, “postalCode”: 394221 }, { “id”: 2, “language”: “C++”, “edition”: “second”, “author”: “EAAAA”, “streetAddress”: 126, “city”: “San Jone”, “state”: “CA”, “postalCode”: 394221 }, { “id”: 3, “language”: “.Net”, “edition”: “second”, “author”: “E.Balagurusamy”, “streetAddress”: 126, “city”: “San Jone”, “state”: “CA”, “postalCode”: 394221 } ]
https://www.novixys.com/blog/convert-csv-json-java/
try (InputStream in = new FileInputStream(csvFile);) {
CSV csv = new CSV(true, ',', in);
List<String> fieldNames = null;
if ( csv.hasNext() ) fieldNames = new ArrayList<>(csv.next());
List<Map<String,String>> list = new ArrayList<>();
while (csv.hasNext()) {
List<String> x = csv.next();
Map<String,String> obj = new LinkedHashMap<>();
for (int i = 0 ; i < fieldNames.size() ; i++) {
obj.put(fieldNames.get(i), x.get(i));
}
list.add(obj);
}
ObjectMapper mapper = new ObjectMapper();
mapper.enable(SerializationFeature.INDENT_OUTPUT);
mapper.writeValue(System.out, list);
}
4.
https://docs.aspose.com/cells/java/convert-csv-to-json/
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java
//Source directory
String sourceDir = Utils.Get_SourceDirectory();
LoadOptions loadOptions = new LoadOptions(LoadFormat.CSV);
// Load CSV file
Workbook workbook = new Workbook(sourceDir + "SampleCsv.csv", loadOptions);
Cell lastCell = workbook.getWorksheets().get(0).getCells().getLastCell();
// Set ExportRangeToJsonOptions
ExportRangeToJsonOptions options = new ExportRangeToJsonOptions();
Range range = workbook.getWorksheets().get(0).getCells().createRange(0, 0, lastCell.getRow() + 1, lastCell.getColumn() + 1);
String data = JsonUtility.exportRangeToJson(range, options);
// Print JSON
System.out.println(data);
V5.
https://codereview.stackexchange.com/questions/105054/csv-to-json-conversion-in-java
public static JSONArray getJSON(String url) throws IOException, JSONException, URISyntaxException, TransformerException{
HttpClient httpClient = new DefaultHttpClient();
JSONArray jArray = new JSONArray();
Object[] q = null;
Deque<String> queue = new ArrayDeque<String>();
try{
HttpGet httpGet = new HttpGet(url);
HttpResponse response = httpClient.execute(httpGet);
int responseCode = response.getStatusLine().getStatusCode();
logger.info("Response Code : " + responseCode);
if (responseCode != 404){
logger.info("Response" + response.getEntity().getContent());
try(BufferedReader reader = new BufferedReader(
new InputStreamReader(
response.getEntity().getContent()))) {
if(reader != null){
String aux = "";
while ((aux = reader.readLine()) != null) {
queue.add(aux);
}
q = queue.toArray();
for(int i = 0; i < q.length; i++){
String[] row = q[i].toString().split(",");
JSONObject json = new JSONObject();
json.put("col0", row[0]);
json.put("col1", row[1]);
json.put("col2", row[2]);
json.put("col3", row[3]);
json.put("col4", row[4]);
json.put("col5", row[5]);
jArray.put(json);
}
}
}
}
}
return null;
}
return jArray;
}finally{
httpClient.getConnectionManager().shutdown();
}
}
留言
張貼留言