读写JSON作配置文件

简介:
1
2
3
4
//最初的写法
File.ReadAllText(jsonPath);
//防止中文乱码
File.ReadAllText(jsonPath,Encoding.Default);

  

写入格式

将json转成字符串写入json文件时,发现没有任何换行、空格、Tab,特别不利于查看,尤其是当数据比较多、分级多较复杂的时候。

所以,在写入之前,应当作一下小小的处理,效果如下:

格式化JSON示例:

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
/// <summary>
/// 格式化JSON字符串
/// </summary>
/// <param name="str">输入字符串</param>
/// <returns>输出字符串</returns>
public  static  string  FormatJsonStr( string  str)
{
     JsonSerializer serializer =  new  JsonSerializer();
     TextReader tr =  new  StringReader(str);
     JsonTextReader jtr =  new  JsonTextReader(tr);
     object  obj = serializer.Deserialize(jtr);
     if  (obj !=  null )
     {
         StringWriter textWriter =  new  StringWriter();
         JsonTextWriter jsonWriter =  new  JsonTextWriter(textWriter)
         {
             Formatting = Formatting.Indented,
             Indentation = 4,
             IndentChar =  ' '
         };
         serializer.Serialize(jsonWriter, obj);
         return  textWriter.ToString();
     }
     else
     {
         return  str;
     }
}

  

读写JSON示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
/// <summary>
/// 读取JSON文件
/// </summary>
/// <param name="jsonPath">json文件路径</param>
/// <returns>json字符串</returns>
public  static  string  ReadJsonString( string  jsonPath)
{
     if  (!File.Exists(jsonPath))
     {
         LogHelper.Error( "配置文件不存在:" + jsonPath);
         return  string .Empty;
     }
     return  File.ReadAllText(jsonPath,Encoding.Default);
}
 
/// <summary>
///读取JSON文件
/// </summary>
/// <param name="jsonPath">json文件路径</param>
/// <returns>JObject对象</returns>
public  static  JObject ReadJsonObj( string  jsonPath)
{
     string  json = ReadJsonString(jsonPath);
     JObject jsonObj =  null ;
     if  (! string .IsNullOrEmpty(json))
     {
         jsonObj=(JObject)JsonConvert.DeserializeObject(json);
     }
     return  jsonObj;
}
 
#region 写入JSON
/// <summary>
/// 写入JSON
/// </summary>
/// <returns></returns>
public  static  bool  Write( string  jsonStr, string  jsonPath)
{
     try
     {
         System.IO.File.WriteAllText(jsonPath, jsonStr, Encoding.Default);
         return  true ;
     }
     catch  (System.Exception ex)
     {
         LogHelper.Error( "保存结果异常"  + ex.Message + ex.StackTrace);
         return  false ;
     }
 
}
#endregion

  











本文转自我也是个傻瓜51CTO博客,原文链接:http://www.cnblogs.com/liweis/p/6408967.html ,如需转载请自行联系原作者


相关文章
|
2月前
|
JSON 小程序 UED
微信小程序 app.json 配置文件解析与应用
本文介绍了微信小程序中 `app.json` 配置文件的详细
265 12
|
7月前
|
JavaScript 前端开发 编译器
10min代码快速熟悉Tsconfig.json配置文件
【8月更文挑战第16天】10min代码快速熟悉Tsconfig.json配置文件
203 2
|
10月前
|
前端开发
【专栏】在前端开发中,package.json 文件是项目的重要配置文件,其中包含了许多与项目相关的信息和设置
【4月更文挑战第29天】`package.json`的`proxy`字段用于配置开发环境中的代理服务器,解决跨域问题并模拟后端响应。它是字符串类型,值为代理服务器地址。主要应用场景包括前端跨域请求和本地调试。配置时在`package.json`顶层添加`proxy`字段,如`"proxy": "http://localhost:8080"`。该配置仅在开发环境中生效,生产环境需另寻解决方案。
132 1
|
10月前
|
JSON 小程序 开发工具
【微信小程序】--JSON 配置文件作用(三)
【微信小程序】--JSON 配置文件作用(三)
|
10月前
|
存储 JSON JavaScript
Python中读写(解析)JSON文件的深入探究
Python中读写(解析)JSON文件的深入探究
271 0
|
JSON Go 数据格式
Golang 语言怎么高效读写 JSON 字符串?
Golang 语言怎么高效读写 JSON 字符串?
107 0
|
JSON 关系型数据库 MySQL
Python--json配置文件
Python--json配置文件
147 0
|
存储 XML JSON
Android操作配置文件封装类,使用json序列化的方式实现
Android操作配置文件封装类,使用json序列化的方式实现
|
JavaScript 前端开发
TypeScript:实践入门和tsconfig.json配置文件
TypeScript:实践入门和tsconfig.json配置文件
142 0
TS中tsconfig.json配置文件的详细配置
TS中tsconfig.json配置文件的详细配置
95 0