C# 正则表达式更改JSON字符串中的属性顺序?
使用Facebook搜索API,我得到了如下回复:C# 正则表达式更改JSON字符串中的属性顺序?,c#,regex,json,facebook,C#,Regex,Json,Facebook,使用Facebook搜索API,我得到了如下回复: "data" : [ { "created_time" : "2010-07-24T19:47:31+0000", "description" : "...", "icon" : "...", "id" : "1", "link" : "...", "name" : "...", "type" : "link",
"data" : [
{
"created_time" : "2010-07-24T19:47:31+0000",
"description" : "...",
"icon" : "...",
"id" : "1",
"link" : "...",
"name" : "...",
"type" : "link",
"updated_time" : "2010-07-24T19:47:31+0000"
},
{
"created_time" : "2010-07-24T14:57:51+0000",
"id" : "2",
"message" : "...",
"type" : "status",
"updated_time" : "2010-07-24T14:57:51+0000"
},
顺便说一句,第一个变量并不总是“创建时间”
。由于以下原因,我需要更改类型
属性位置:
在JSON对象中键入提示位置
注意,类型提示必须首先出现在JSON表示中。这是唯一一种键/值对顺序在JSON处理中很重要的情况
结果必须是:
"data" : [
{
"__type" : "link:#Facebook",
"created_time" : "2010-07-24T19:47:31+0000",
"description" : "...",
"icon" : "...",
"id" : "1",
"link" : "...",
"name" : "...",
"updated_time" : "2010-07-24T19:47:31+0000"
},
{
"__type" : "status:#Facebook",
"created_time" : "2010-07-24T14:57:51+0000",
"id" : "2",
"message" : "...",
"updated_time" : "2010-07-24T14:57:51+0000"
},
对我来说,以下工作: 寻找
\{(\s+)([^}]*?)"type" : "([^"]*)",\s+
并替换为
{\1"__type" : "\3:#facebook"\1\2
这将查找一个大括号,抓取所有内容,直到第一个type
条目(如果块不包含条目,则匹配失败),存储其值并在块内容的开头替换它
不支持嵌套块(不知道是否会出现嵌套块)
在C#中:
对我来说,以下工作: 寻找
\{(\s+)([^}]*?)"type" : "([^"]*)",\s+
并替换为
{\1"__type" : "\3:#facebook"\1\2
这将查找一个大括号,抓取所有内容,直到第一个type
条目(如果块不包含条目,则匹配失败),存储其值并在块内容的开头替换它
不支持嵌套块(不知道是否会出现嵌套块)
在C#中:
对于更复杂的场景,这不起作用。我放弃了这种方法,但谢谢你的时间!对于更复杂的场景,这不起作用。我放弃了这种方法,但谢谢你的时间!