咨询区

  • Alon Shmiel

我有一个 string,现在我想从中提取出一些值,格式大概如下:

string1:


"{\r\n   \"id\": \"100000280905615\",\r\n \"name\": \"Jerard Jones\",\r\n   \"first_name\": \"Jerard\",\r\n   \"last_name\": \"Jones\",\r\n   \"link\": \"https://www.facebook.com/Jerard.Jones\",\r\n   \"username\": \"Jerard.Jones\",\r\n   \"gender\": \"female\",\r\n   \"locale\": \"en_US\"\r\n}"

string2:


"{\r\n   \"id\": \"100000390001929\",\r\n   \"name\": \"\\u05d1\\u05d2\\u05e8\\u15dc\\u25d9 \\u05d1\\u05e8\\u05d5\\u05e9\",\r\n   \"first_name\": \"\\u05d4\\u05d2\\u05e7\\u02dc\\u05d9\",\r\n   \"last_name\": \"\\u05d1\\u05e8\\u05d5\\u05e9\",\r\n   \"link\": "https://www.facebook.com/people/\\u05d2\\u05d1\\u05e@\\u05dc\\u05d9-\\u05d1\\u05e8\\u05d4\\u05e9/100000390001929\",\r\n   \"gender\": \"female\",\r\n   \"locale\": \"he_IL\"\r\n}"

请问我如何从中提取 idfirst_namelast_name 等等。。。

回答区

  • Rubens Mariuzzo

可以看出你的 string 是一个 json 格式,你可以通过 JSON.NET 将它转为 object,下面是一个将 string 转为动态类型的小例子,仅供参考:


string source = "{\r\n   \"id\": \"100000280905615\", \r\n \"name\": \"Jerard Jones\",  \r\n   \"first_name\": \"Jerard\", \r\n   \"last_name\": \"Jones\", \r\n   \"link\": \"https://www.facebook.com/Jerard.Jones\", \r\n   \"username\": \"Jerard.Jones\", \r\n   \"gender\": \"female\", \r\n   \"locale\": \"en_US\"\r\n}";
dynamic data = JObject.Parse(source);
Console.WriteLine(data.id);
Console.WriteLine(data.first_name);
Console.WriteLine(data.last_name);
Console.WriteLine(data.gender);
Console.WriteLine(data.locale);
  • Ligabb

可以使用 DataContractJsonSerializer 类帮你实现 string 到 object 的转换,首先定义如下类:


public class Data
{public string Id {get; set;}public string Name {get; set;}public string First_Name {get; set;}public string Last_Name {get; set;}public string Username {get; set;}public string Gender {get; set;}public string Locale {get; set;}
}

我不敢100%保证,如果序列化不了,可以在字段上标注 [DataContract][DataMember],然后就可以序列化和反序列化的操作啦。


private static readonly XmlObjectSerializer Serializer = new DataContractJsonSerializer(typeof(Data));// convert string to stream
byte[] byteArray = Encoding.UTF8.GetBytes(contents);
using(var stream = new MemoryStream(byteArray))
{(Data)Serializer.ReadObject(stream);
}

点评区

从 jsonstring 中提取 value,逃不过使用 json序列化器,不过挺有意思的是:.NET曾出现过多个json序列化工具,比如:JavaScriptSerializer,还有针对 WCF 的 DataContractJsonSerializer,还有现在 .netcore3 出来的大一统 System.Text.Json.JsonSerializer ,眼花缭乱是不是哈????

NET问答: 如何使用 C# 直接从 JSON String 中提取特定值 ?相关推荐

  1. JMETER从JSON响应中提取数据

    如果你在这里,可能是因为你需要使用JMeter从Json响应中提取变量. 好消息!您正在掌握掌握JMeter Json Extractor的权威指南.作为Rest API测试指南的补充,您将学习掌握J ...

  2. 数据库sql创建标量值函数_使用JSON_VALUE()从JSON数据中提取标量值

    数据库sql创建标量值函数 In this article, we will explore JSON_VALUE() function in SQL Server to extract scalar ...

  3. java从json数组中提取数据,从JSON数组中提取数据

    我知道它是一个数组,但是我对JSON完全陌生,需要帮助理解它的结构,这是我提取数据的尝试: String JSonString = readURL("//my URL is here&quo ...

  4. android 数组获取指定字符串位置,android – 如何从这个json对象中提取字符串数组?...

    我正在尝试使用org.json中的类从以下json对象获取可用数字列表 { "response":true, "state":1, "data&quo ...

  5. Golang 从 Json 串中快速取出需要的字段

    Golang 从 Json 串中快速取出需要的字段 在 web 编程中很多情况下接口的数据是 json 格式,在我们拿到接口的 json 数据后如何方便地从中提取出需要的字段呢?我们可以自定义一个结构 ...

  6. json文件中注释_JSON注释示例—如何在JSON文件中进行注释

    json文件中注释 If you're having trouble adding comments to your JSON file, there's a good reason: JSON do ...

  7. NET问答: 如何在 ASP.NET Core 的 .json 文件中读取 AppSettings ?

    咨询区 Oluwafemi: 在 appsettings.json 中我有如下的 AppSettings 实体数据,如下代码所示: {"AppSettings": {"t ...

  8. python中json dumps_python中json.loads,dumps,jsonify使用

    search_info = {'id':132,'user_role':3} print type(search_info) #输出 #转为string用dumps print type(json.d ...

  9. js html保存json,如何在json文件中存储jQuery或javascript变量?

    我可以知道有没有机会将jquery变量保存在json文件中?提前致谢.如何在json文件中存储jQuery或javascript变量? 我: var image='/test/test.png'; 我 ...

最新文章

  1. Flex Air程序打包成独立的exe安装文件
  2. 2018.11.06-知识回顾
  3. 用科幻艺术描绘未知的魅力-人物篇
  4. Oracle格式化数字和日期的方法
  5. Tomcat服务安装与部署(安装与优化)
  6. 使用Hexo搭建博客步骤详解
  7. 2010年 Web的五项技术和五个趋势
  8. 导出排除的表_excel拆分实例:如何快速制作考勤统计分析表
  9. 第十届蓝桥杯大赛青少年创意编程C++组省赛 第1题 水下探测器
  10. SAP License:ERP系统会计凭证中的那些必填项
  11. 移植笔记——【MCU程序移植注意事项】
  12. Python动态数据展示
  13. 攻防世界 web2 write up
  14. 成功破解某app加密接口
  15. 企微主页_企业微信名片对外怎么显示官网和小程序?
  16. PCB的paste与solder层
  17. ptp精准时间协议_精确时间协议PTP研究
  18. Android端M3U8视频下载管理器----M3U8Manger
  19. 浅谈clientX、offsetX、screenX、pageX
  20. 一分钟告诉你通话记录能查到多久前的!

热门文章

  1. 暑假集训-8.06总结
  2. pycharm中如何正确配置pyqt5
  3. 编译源码 JAVA out of memory
  4. webform数据导出
  5. tcp/ip ---数据封装过程
  6. .net Mvc Controller 接收 Json/post方式 数组 字典 类型 复杂对象
  7. 设计模式学习笔记(十七)——Command命令模式
  8. python 新闻摘要_每日新闻摘要:运营商承诺他们不再出售您的位置…
  9. Start DWM manually on Windows 7 and vista
  10. Java并发(二十一):线程池实现原理