2 wh8383672 wh8383672 于 2017.09.08 10:43 提问

json输入较长字符串时,怎么让字符串变多行,而不是都写在一行中。 20C

比如现在有个字符串数据 string=“aaaaaaaaaaaaaaaaaaaa
ddddddddddddddddd
ccccccccccccccc”

我现在建立一个json格式文件,然后在输入字符串的时候以如下换行效果来保存json文件,方便自己阅读,可以实现吗:
[
{
"gongWeiContent": "aaaaaaaaaaaaaa"
“dddddddddddd”
“ccccccccccccccc”
}
]
因为我要保存的字符串数据时一段文章,比较长,如果全部在一行中,就很不美观。

10个回答

showbo
showbo   Ds   Rxr 2017.09.08 11:36

不是美观不美观问题吧,你那样格式错误了到时客户端都无法使用

自动换行自己看下编辑器的设置,配置编辑器而不是想着改json格式

lt623265189
lt623265189   2017.09.08 10:51

json格式化就好了
在线格式化:http://www.bejson.com/jsonviewernew/

lt623265189
lt623265189   2017.09.08 10:52

也可以自己写代码实现格式化处理

Small_Mouse0
Small_Mouse0   Ds   Rxr 2017.09.08 10:54

这样可能不太合适,,但是可以绕一下,,

题主可以把String分成多行吧,,然后根据行号放到map里(放list也一样),再转成json就能达到类似题主这样的效果。。

 string=“aaaaaaaaaaaaaaaaaaaa
ddddddddddddddddd
ccccccccccccccc”
//放到map里

{
"0": "aaaaaaaaaaaaaa"
"1": “dddddddddddd”
"2": “ccccccccccccccc”
}

类似于这种,,前面的key随意设置

Small_Mouse0
Small_Mouse0 回复wh8383672: 那必须可行,,你那个不太符合json规则,,,,嘿嘿对你有帮助,给个采纳
3 个月之前 回复
wh8383672
wh8383672 回复小鼠标丶: 你的想法还是可行的。。。
3 个月之前 回复
Small_Mouse0
Small_Mouse0 回复wh8383672: 不用定义什么1234,,麻烦的,,直接遍历map,取字符串,拼装即可
3 个月之前 回复
Small_Mouse0
Small_Mouse0 回复wh8383672: map转json,,json转map,,,解析的时候转map,,,foreach,妥妥的
3 个月之前 回复
wh8383672
wh8383672 那么在解析的时候,岂不是要在对应的自定义类里设置很多0,1,2....这种属性名来保存每个行。。。
3 个月之前 回复
lt623265189
lt623265189   2017.09.08 10:55

C#实现json字符串格式化

// 需要导入Newtonsoft.Json,这里使用的版本是4.5
private string ConvertJsonString(string str)
{
           //格式化json字符串
           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;
           }         
}
wh8383672
wh8383672 回复梦邪异语: 我需要的是在制作json文件中字符串的时候,能够直接做成几行几列那种,目前不需要解析
3 个月之前 回复
lt623265189
lt623265189 这个输出的是格式化字符串,跟你需求符合
3 个月之前 回复
u011315960
u011315960   2017.09.08 10:57

我觉得有两种方法你可以尝试一下:
1、先把String 转成JsonObejct,再把JsonObejct.toString()的记过保存,我感觉Json会自动转换格式,你可以尝试一下。
2、在你输入到文件的时候,手动在你需要换行的地方输出换行符 \n,这个就要看你自己的需要了。

qq_33727653
qq_33727653   2017.09.08 11:45

json数据用途不是在使用吗? 楼主这是要直接页面界面显示原态json数据? 表示不大理解楼主用途!!!

liang_shui_guo
liang_shui_guo   2017.09.08 12:00

这样不符合json规则,要想换行显示还是配置自己的编辑器换行吧

sunny_desmond
sunny_desmond   2017.09.08 13:50

直接用编译器换行就行了。。。。

oops_bao
oops_bao   2017.09.08 15:11

如果只是为了换行显示的话,类似eclipse的更改编码风格图片说明

Csdn user default icon
上传中...
上传图片
插入图片