- 将json mudule中的 peopleList 的json数据格式化写出来(不借助与任何工具类)。
- 将json mudule中的 map 的json数据格式化写出来(不借助与任何工具类)。
package json;
public class People {
private int age;
private String gender;
private String address;
private Dog friend;
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public Dog getFriend() {
return friend;
}
public void setFriend(Dog friend) {
this.friend = friend;
}
}
package json;
public class JsonFormatTool {
private static String SPACE = " ";
public static String formatJson(String json) {
StringBuffer result = new StringBuffer();
int length = json.length();
int number = 0;
char key = 0;
for (int i = 0; i < length; i++) {
key = json.charAt(i);
if ((key == '[') || (key == '{')) {
if ((i - 1 > 0) && (json.charAt(i - 1) == ':')) {
result.append('\n');
result.append(indent(number));
}
result.append(key);
result.append('\n');
number++;
result.append(indent(number));
continue;
}
if ((key == ']') || (key == '}')) {
result.append('\n');
number--;
result.append(indent(number));
result.append(key);
if (((i + 1) < length) && (json.charAt(i + 1) != ',')) {
result.append('\n');
}
continue;
}
result.append(key);
}
return result.toString();
}
private static String indent(int number) {
StringBuffer result = new StringBuffer();
for (int i = 0; i < number; i++) {
result.append(SPACE);
}
return result.toString();
}
}
package json;
public class Dog {
private String color;
private String name;
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
package json;
import com.alibaba.fastjson.JSON;
import java.io.PrintWriter;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class JsonTest {
public static void main(String[] args) {
Person p = new Person();
p.setAge(10);
p.setName("张三");
Dog dog = new Dog();
dog.setColor("pink");
dog.setName("旺财");
People people = new People();
people.setAge(20);
people.setGender("女");
people.setAddress("背景");
people.setFriend(dog);
Dog dog2 = new Dog();
dog2.setColor("green");
dog2.setName("大黄");
People people2 = new People();
people2.setAge(30);
people2.setGender("男");
people2.setAddress("杭州");
people2.setFriend(dog2);
List<Dog> lists = Arrays.asList(dog, dog2);
List<People> peopleList = Arrays.asList(people, people2);
String json = JSON.toJSONString(peopleList);
System.out.println(json);
Map<String, People> map = new HashMap< String ,People>();
map.put("people", people);
map.put("people2", people2);
System.out.println(json);
String json2 = JSON.toJSONString(map);
CreateFileUtil.createJsonFile(json, "E://1","peopleList");
CreateFileUtil.createJsonFile(json2,"E://2","map");
}
}
class Person {
private int age;
private String name;
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
package json;
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
import java.io.Writer;
public class CreateFileUtil {
public static boolean createJsonFile(String jsonString, String filePath, String fileName) {
boolean flag = true;
String fullPath = filePath + File.separator + fileName + ".json";
try {
File file = new File(fullPath);
if (!file.getParentFile().exists()) {
file.getParentFile().mkdirs();
}
if (file.exists()) {
file.delete();
}
file.createNewFile();
if(jsonString.indexOf("'")!=-1){
jsonString = jsonString.replaceAll("'", "\\'");
}
if(jsonString.indexOf("\"")!=-1){
jsonString = jsonString.replaceAll("\"", "\\\"");
}
if(jsonString.indexOf("\r\n")!=-1){
jsonString = jsonString.replaceAll("\r\n", "\\u000d\\u000a");
}
if(jsonString.indexOf("\n")!=-1){
jsonString = jsonString.replaceAll("\n", "\\u000a");
}
jsonString = JsonFormatTool.formatJson(jsonString);
Writer write = new OutputStreamWriter(new FileOutputStream(file), "UTF-8");
write.write(jsonString);
write.flush();
write.close();
} catch (Exception e) {
flag = false;
e.printStackTrace();
}
return flag;
}
}