大家好我想用正则表达式从这个文件获取数据json,这个数据来自web路由器
//
nvram = {
'wan_domain': '',
'wan_gateway': '10.10.1.1',
'wan_gateway_get': '125.162.136.1',
'wan_get_domain': '',
'wan_hostname': 'Gatsu-Router',
'wan_hwaddr': '50:46:5D:00:C8:89',
'wan_ipaddr': '125.162.138.160',
'wan_netmask': '255.255.255.255',
'wan_proto': 'pppoe',
'wan_run_mtu': '1492',
'web_pb': ''};
//
wlstats = [ { radio: 1, client: 0, channel: 3, mhz: 2422, rate: 144, ctrlsb: 'none', nbw: 20, rssi: 0, noise: -86, intf: 0 }
,{ radio: 1, client: 0, channel: 149, mhz: 5745, rate: 900, ctrlsb: 'lower', nbw: 40, rssi: 0, noise: -99, intf: 0 }
];
所以请输入此数据
nvram = {
'wan_domain': '',
'wan_gateway': '10.10.1.1',
'wan_gateway_get': '125.162.136.1',
'wan_get_domain': '',
'wan_hostname': 'Gatsu-Router',
'wan_hwaddr': '50:46:5D:00:C8:89',
'wan_ipaddr': '125.162.138.160',
'wan_netmask': '255.255.255.255',
'wan_proto': 'pppoe',
'wan_run_mtu': '1492',
'web_pb': ''};
答案 0 :(得分:1)
您可以使用Json.NET来解析路由器中的数据。这比使用正则表达式更容易。
根据shree.pat18评论,这是一个小工作示例如何使用它:
TestJson.cs:
using Newtonsoft.Json;
namespace TestConsole.TestClasses {
class RouterInfo {
[JsonProperty(PropertyName = "wan_gateway")]
public string Gateway { get; set; }
[JsonProperty(PropertyName = "wan_run_mtu")]
public int Mtu { get; set; }
// add here other fields
}
class JsonTest {
public void Test() {
string routerData = @"{
'wan_domain': '',
'wan_gateway': '10.10.1.1',
'wan_gateway_get': '125.162.136.1',
'wan_get_domain': '',
'wan_hostname': 'Gatsu-Router',
'wan_hwaddr': '50:46:5D:00:C8:89',
'wan_ipaddr': '125.162.138.160',
'wan_netmask': '255.255.255.255',
'wan_proto': 'pppoe',
'wan_run_mtu': '1492',
'web_pb': ''}";
RouterInfo info = JsonConvert.DeserializeObject<RouterInfo>(routerData);
// here you can work with RouterInfo "info" object
}
}
}
您应该将Json.NET库添加到您的项目中,然后使用NuGet。