2 taoweizeng taoweizeng 于 2013.10.15 10:11 提问

C#字符串获取后如何取其中的一个字符

_Callback( {"Ishost":0, "items":[], "calvisitcount":[0,19,1,10,24,11,29,1,1,2,2,2,0,4,0,1,6,2,1,0,2,2,2,0,1,3,0,0,0,1,0], "modvisitcount":[{"mod":0, "todaycount":0, "totalcount":1409245}, {"mod":1, "todaycount":0, "totalcount":0}, {"mod":3, "todaycount":0, "totalcount":10}, {"mod":8, "todaycount":0, "totalcount":98}, {"mod":10, "todaycount":0, "totalcount":17}], "lastlogin":0, "twlogincount":0, "lastgettime":1381797259});

其中我想要截取第一个"todaycount":和"totalcount":中间的那个数字该怎么截取?想了好久都没想出来,脑袋进水了。。。。。。。。。。。。。。。。。。。。。。。。因为这是从网页获取的,放在string里后不知道该怎么截取,求帮助,求思路,help。。。。。。。。。。。。。。。。。。

4个回答

xialxl
xialxl   2013.10.15 15:38
已采纳

_Callback后面小括号 中的一整个字符串是一个JSON 格式的字符串。

C# 如下操作就可以了
第一步,定义类 ClassA,ClassTemp:
public class ClassA
{
public int mod;
public int todaycount;
public int totalcount;
}
public class ClassTemp
{
public int Ishost;
public int[] calvisitcount;
public ClassA[] modvisitcount;
......
}
第二步,字符串反序列化为ClassTemp:
string jsonString ={"Ishost":0, "items":[], "calvisitcount":[0,19,1,10,24,11,29,1,1,2,2,2,0,4,0,1,6,2,1,0,2,2,2,0,1,3,0,0,0,1,0], "modvisitcount":[{"mod":0, "todaycount":0, "totalcount":1409245}, {"mod":1, "todaycount":0, "totalcount":0}, {"mod":3, "todaycount":0, "totalcount":10}, {"mod":8, "todaycount":0, "totalcount":98}, {"mod":10, "todaycount":0, "totalcount":17}], "lastlogin":0, "twlogincount":0, "lastgettime":1381797259};

System.Web.Script.Serialization.JavaScriptSerializer serializer = new System.Web.Script.Serialization.JavaScriptSerializer();
jsonString temp = serializer.Deserialize(jsonString)

temp 是一个强类型的对象了,就可以直接用了。

javascript 操作如下:
var jsonObj ={"Ishost":0, "items":[], "calvisitcount":[0,19,1,10,24,11,29,1,1,2,2,2,0,4,0,1,6,2,1,0,2,2,2,0,1,3,0,0,0,1,0], "modvisitcount":[{"mod":0, "todaycount":0, "totalcount":1409245}, {"mod":1, "todaycount":0, "totalcount":0}, {"mod":3, "todaycount":0, "totalcount":10}, {"mod":8, "todaycount":0, "totalcount":98}, {"mod":10, "todaycount":0, "totalcount":17}], "lastlogin":0, "twlogincount":0, "lastgettime":1381797259};

jsonObj 就是你要的东西了。
var todaycount= jsonObj.modvisitcount[0].todaycount;//todaycount等于 0
var totalcount= jsonObj.modvisitcount[0].totalcount;//totalcount等于 1409245

StillCity
StillCity   2013.10.15 11:09

因为你的格式都是一样的 所以完全可以
【"todaycount":】0【, "totalcount"】
把【】之内的数据remove掉 就是你要的数据了
或者用substring直接截

u012649241
u012649241   2013.11.04 20:14

直接用Substring(m,n)就可以了,m代表从第几个开始提取字符串,n代表从m开始提取多少位,例如string str=“csdn”,strings=str.Substring(0,1),

Sun_Blue_Sky
Sun_Blue_Sky   2013.11.22 08:35

反序列化成对象,然后直接操作对象即可。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!