读写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 ,如需转载请自行联系原作者


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值