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