- LitJson默认生成的JSON字符串,会直接把Json内容全部打印在一行上,难以观察。
- 项目经理需求,要将序列生成的Json字符串格式化再转存下来。
- 恰好看到马三小伙儿这里提到
JsonWriter这个类中有个 pretty_print 字段,它的默认值是 false,我们只要将它在Init函数中置为 true,就可以实现LitJson以格式化的形式输出Json内容啦!
两种方法
JsonData root = new JsonData();
root["Category"] = "This is a category";
mData data = new mData();
data.UTMPose = new mPosed();
string dataJson = JsonMapper.ToJson(data);
root["Data"] = JsonMapper.ToObject(dataJson);
// 方法一:调用JsonMapper.ToJson(object obj, JsonWriter writer)生成格式化字串,需对Json结构定义完整的数据类
JsonWriter jw = new JsonWriter();
jw.PrettyPrint = true;
JsonMapper.ToJson(data, jw);
// 方法二:调用JsonData.ToJson (JsonWriter writer)生成格式化字串,方便快捷
JsonWriter jw1 = new JsonWriter();
jw1.PrettyPrint = true;
root.ToJson(jw1);
Debug.Log(root.ToJson());
Debug.Log(jw1.TextWriter.ToString());
Debug.Log(jw.TextWriter.ToString());
class mPosed {
public double x, y, z, qx, qy, qz, qw;
}
class mData {
public mPosed UTMPose;
public string ErrorCode;
public double azimuth;
}