c#如何读取json中的值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c#如何读取json中的值相关的知识,希望对你有一定的参考价值。

我已经把Json读了进temp,
String temp ="response":["sFName":"Tom","sLName":"Lai","position":"Manage","permission":"0"];
如何把temp中的sFname,sLname,position,permisstion取出来
我在用WINFORM C#

在C#中怎么解析JSON数据,并获取到其中的值,案例如下:

#JSON数据为:"phantom":true,"id":"ext-record-10","data":"MID":1019,"Name":"aaccccc","Des":"cc","Disable":"启用","Remark":"cccc"。
#需要得到结果为"MID":1019,"Name":"aaccccc","Des":"cc","Disable":"启用","Remark":"cccc"的字符串。

功能代码:

using System.Runtime.Serialization.Json;
       [Serializable]
        public class InternalClass
        
            public int MID;
            public string Name;
            public string Des;
            public string Disable;
            public string Remark;
        
        [Serializable]
        public class OuterClass
        
            public bool phantom;
            public string id;
            public InternalClass data;
        
        private void button2_Click(object sender, EventArgs e)
        
            const string json = @"""phantom"":true,
                                   ""id"":""ext-record-10"",
                                   ""data"":
                                  ""MID"":1019,
                                   ""Name"":""aaccccc"",
                                    ""Des"":""cc"",
                                    ""Disable"":""启用"",
                                    ""Remark"":""cccc""";
            DataContractJsonSerializer ser1 = new DataContractJsonSerializer(typeof(OuterClass));
            using (MemoryStream ms = new MemoryStream(Encoding.Unicode.GetBytes(json)))
            
                OuterClass foo1 = ser1.ReadObject(ms) as OuterClass;
            
        
参考技术A 首先,你这个不是一个正确的json格式字符串,正确:

String temp =["response":["sFName":"Tom","sLName":"Lai","position":"Manage","permission":"0"]];

你是想在客户端读取这个字符串吗?如果是你可以这样写;

<script>
var json_str=eval('<%=temp%>');
var j1=json_str[0];
$.each(j1,function(i,boj)
var sFname=j1.sFName;
alert(sFname);//其他依次类推
);

</script>追问

我在用WINFORM C#

参考技术B 是web还是Winfrom?
1、添加引用
2、 System.Web.Script.Serialization.javascriptSerializer jss = new System.Web.Script.Serialization.JavaScriptSerializer();
jss.Serialize(_obj);//_obj必须实现[System.Serializable()]特性追问

我在用WINFORM C#

追答

http://msdn.microsoft.com/library/system.runtime.serialization.datacontractserializer.aspx

需要序列化的类使用[DataContractAttribute]特性,字段使用[DataMemberAttribute]特性

追问

不太会看...

追答


追问

追答

namespace WindowsFormsApplication2

[Serializable]
public partial class Form1 : Form

public Form1()

InitializeComponent();

System.Web.Script.Serialization.JavaScriptSerializer jss = new System.Web.Script.Serialization.JavaScriptSerializer();
Dictionary dic = (Dictionary)jss.Deserialize(Temp, typeof(Dictionary>));




[Serializable]
public class JsonTmp

public string sFName = string.Empty;

追问

对不起啊!还是看不明白
然后呢? 我想label3.text为sFName,label4.text为sLName在以上那个位置加
能私信你的q.Q吧!真心想请教你c#问题

本回答被提问者采纳
参考技术C 取sFname 的方法是: temp.response.sFName;
其他的不用说了吧.追问

不行啊

Python 如何读取excel中的字典数据

我想读取AD列中A,B,C,D,E,G的数据。我用的是python pandas, xlrd也试过。我想问一下我如何用python读取字典数据 然后进行搜索 比如我想搜索列AD中A大于150的值这样。谢谢

参考技术A 你那个字典在python里就是个字符串
可以用json.loads方法转换为字典再处理
参考技术B import json
data_str = "AD列的值“
data = json.loads(data_str)
至于怎么读取excel中的数据:
import win32com.client as win32 # 安装pywin32
excel = win32.gencache.EnsureDispatch('Excel.Application')
wb = excel.Workbooks.Open('workbook1.xlsx')
sht = wb.Worksheets("Sheet1")

以上是关于c#如何读取json中的值的主要内容,如果未能解决你的问题,请参考以下文章

如何读取C# object的值

如何使用 c# 读取 asp.net 中的 json 响应(经销商俱乐部域检查可用性 API 集成)

反序列化 JSON 并返回 C# 中的值?

统一读取和解析 C# 中的 Json 文件

从 C# 中的 OperationContext 读取 JSON 格式的请求内容

在 Vue CLI 3 中运行 build:electron 后,如何将静态 config.json 文件中的值读取到 Vue 文件中的 TypeScript?