我有一个json
输出,它有两个字符串格式,如
[{"device_id":"9700015","update_time":"2017-01-04 18:30:00","sensor_value":"1287.6"}]
[{"device_id":"9700016","update_time":"2016-12-31 18:30:00","sensor_value":"1113.8"}]
我想将这些字符串解析为一个对象。我使用了JSON.parse(data)
但是它给了我第一个字符串而不是所有字符串。我如何实现这一目标。
我希望输出应该是
[{"device_id":"9700015","update_time":"2017-01-04 18:30:00","sensor_value":"1287.6"},
{"device_id":"9700016","update_time":"2016-12-31 18:30:00","sensor_value":"1113.8"}]
答案 0 :(得分:0)
我想你想要一个包含两个对象的数组,否则,请指定你的预期输出。
如果您无法修改收到的JSON字符串以使其看起来像一个正确的数组,我将替换'] ['对于逗号','所以你可以解析JSON字符串并接收一个里面有两个对象的数组,如下所示:
original = '[{"device_id":"9700015","update_time":"2017-01-04 18:30:00","sensor_value":"1287.6"}][{"device_id":"9700016","update_time":"2016-12-31 18:30:00","sensor_value":"1113.8"}]';
replaced = original.replace('][', ',');
parsed = JSON.parse(replaced);
<强>编辑:强>
如果你的输入在结束方括号和开头方括号之间包含换行符,你的替换应该是这样的:
replaced = original.replace(']\n[', ',');
第二次修改:
如果您的输入包含两行以上的行,那么没有问题,如果你这样写,你的替换调用将替换每一个匹配:
replaced = original.replace(/\]\[/g, ',');
这是一个正则表达式,用[]表示\]\[
表示,因为这些是正则表达式的特殊字符),借助于 g 指定的标志正则表达式的结尾。
答案 1 :(得分:0)
你可以这样做:
ApplicationUser user = await userManager.Users.Include(s => s.Sales).Where(e => e.Email == "t@t.net").FirstOrDefaultAsync();