使用单声道的.NET 2,我使用的是一个JSON返回嵌套字符串,对象字典和列表的基本库.
我正在编写一个mapper来将它映射到我已经拥有的jsonData类,我需要能够确定a的基础类型object是Dictionary还是List.下面是我用来执行此测试的方法,但是想知道这是否更干净?
private static bool IsDictionary(object o) {
try {
Dictionary<string, object> dict = (Dictionary<string, object>)o;
return true;
} catch {
return false;
}
}
private static bool IsList(object o) {
try {
List<object> list = (List<object>)o;
return true;
} catch {
return false;
}
}
Run Code Online (Sandbox Code Playgroud)
我正在使用的库是,litJson但JsonMapper该类基本上不适用于iOS,因此我正在编写自己的映射器.
我已经编写了代码来解析我的xml文件,XmlReader所以我不想重写它.我现在已经为程序添加了加密功能.我有encrypt()和decrypt()函数,它们采用xml文档和加密算法.我有一个使用xml阅读器来解析文件的函数,但现在使用xml文档我不知道如何创建xmlreader.
问题是如何将我的xml文档保存到流.我确信它很简单,但我对流不了解.
XmlDocument doc = new XmlDocument();
doc.PreserveWhitespace = true;
doc.Load(filep);
Decrypt(doc, key);
Stream tempStream = null;
doc.Save(tempStream); // <--- the problem is here I think
using (XmlReader reader = XmlReader.Create(tempStream))
{
while (reader.Read())
{ parsing code....... } }
Run Code Online (Sandbox Code Playgroud) 正如标题所示,我正在尝试从二进制文件中读取空终止字符串.
std::string ObjElement::ReadStringFromStream(std::ifstream &stream) {
std::string result = "";
char ch;
while (stream.get(ch) != '\0') {
result += ch;
}
return result; }
Run Code Online (Sandbox Code Playgroud)
我的空字符是'\ 0'
但是每当我调用它的方法时,它就会读到文件的末尾
std::ifstream myFile(file, std::ios_base::in | std::ios_base::binary);
myFile.seekg(startByte);
this->name = ObjElement::ReadStringFromStream(myFile);
Run Code Online (Sandbox Code Playgroud)
知道我在这里做错了吗?