Pagini recente » Cod sursa (job #134026) | Cod sursa (job #1339047) | Cod sursa (job #281492) | Cod sursa (job #34464) | Cod sursa (job #1345912)
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.PrintWriter;
class Main {
public static StringBuilder buffer = new StringBuilder();
public static boolean parseKeyList = true;
public static PrintWriter writer;
public static void main(String[] args) throws FileNotFoundException {
String line;
writer = new PrintWriter("convertor.out");
try (BufferedReader br = new BufferedReader(new FileReader("convertor.in"))) {
while((line = br.readLine()) != null) {
parseString(line);
}
br.close();
} catch (Exception e) {
System.out.println("Something went wrong!");
System.out.println(e.toString());
}
writer.close();
}
public static void parseString(String line) {
int objectStart, objectEnd;
buffer.append(line);
while(containsJsonObject(buffer)) {
objectStart = buffer.indexOf("{");
objectEnd = buffer.indexOf("}");
parseObject(
buffer.substring(objectStart + 1, objectEnd),
parseKeyList
);
buffer.delete(0, objectEnd + 1);
parseKeyList = false;
}
}
public static boolean containsJsonObject(StringBuilder str) {
return (str.indexOf("{") != -1) && (str.indexOf("}") != -1);
}
public static void parseObject(String jsonObject, boolean parseKeyList) {
char ch;
// print out the csv header
if(parseKeyList) {
int keyEndQuote, keyStartQuote;
for(int i = 0; i < jsonObject.length(); i++) {
ch = jsonObject.charAt(i);
if(ch == ':') {
keyEndQuote = jsonObject.lastIndexOf('"', i);
keyStartQuote = jsonObject.lastIndexOf('"', keyEndQuote - 1);
writer.print(jsonObject.substring(keyStartQuote + 1, keyEndQuote).concat(","));
}
}
writer.println();
}
// print our the csv data
int pairComma;
for(int i = 0; i < jsonObject.length(); i++) {
ch = jsonObject.charAt(i);
if(ch == ':') {
pairComma = jsonObject.indexOf(',', i);
if(pairComma != -1) {
writer.print(
jsonObject.substring(i + 1, pairComma)
.trim()
.concat(",")
.replace("\"", "")
);
} else {
writer.println(
jsonObject.substring(i + 1, jsonObject.length())
.trim()
.concat(",")
.replace("\"", "")
);
break;
}
}
}
}
}