c# - 使用 C# 从不同语言的 JSON 文件中获取数据
问题描述
我尝试使用此代码将 JSON 文件中的数据获取到我的应用程序中(希伯来字母看起来像这样“??”):
private static T PopulateData<T>(string fileName)
{
var file = "TestingNav.Data." + fileName;
var assembly = Assembly.GetExecutingAssembly();
T obj;
var resourceStream = assembly.GetManifestResourceStream(file);
using (var reader = new StreamReader(resourceStream, Encoding.Default))
{
string data = reader.ReadToEnd();
byte[] byteArray = Encoding.Default.GetBytes(data);
MemoryStream stream = new MemoryStream(byteArray);
var serializer = new DataContractJsonSerializer(typeof(T));
obj = (T)serializer.ReadObject(stream);
}
return obj;
}
但是,它不适用于不同的语言,即希伯来语……尽管我确实尝试在其中放入不同类型的编码。
代码无法读取的 JSON 部分:
{
"itemName": "Hamburger",
"name": "Hamburger 52",
"description": "Hamburger 52 Y/O",
"itemDescription": "טעים מאוד hamburger with Angus beef grilled to perfection",
"itemRating": 4.5
},
更新:
private static T PopulateData<T>(string fileName)
{
var file = "TestingNav.Data." + fileName;
T obj;
var assembly = IntrospectionExtensions.GetTypeInfo(typeof(T)).Assembly;
Stream stream = assembly.GetManifestResourceStream(file);
string text = "";
using (var reader = new StreamReader(stream))
{
text = reader.ReadToEnd();
obj = JsonConvert.DeserializeObject<T>(text);
}
return obj;
}
解决方案
解决方案非常简单,感谢您提供的所有大量帮助 @Panagiotis Kanavos @dbc @Heretic Monkey
解决方案:
private static T PopulateData<T>(string fileName)
{
var file = "TestingNav.Data." + fileName;
T obj;
var assembly = IntrospectionExtensions.GetTypeInfo(typeof(T)).Assembly;
Stream stream = assembly.GetManifestResourceStream(file);
string text = "";
using (var reader = new StreamReader(stream, Encoding.GetEncoding(1255)))
{
text = reader.ReadToEnd();
obj = JsonConvert.DeserializeObject<T>(text);
}
return obj;
}
推荐阅读
- python - 验证输入选择和循环,直到获得 4 个选项之一
- sql-server - SQL 查询在 ')' 附近给出不正确的语法 - 在 INNER JOIN 中使用 CAST
- java - Java 并发 - volatile 关键字的影响能有多远
- python - 如何在odoo的many2one字段中限制对“创建和编辑”的访问
- php - 在php中从欲望中删除字符开始到结束
- javascript - 为单元格中的表格实现显示更多/显示更少:ReactJS
- linux - 依赖路径
- c# - 将日志文件生成到服务器网络路径时出错
- javascript - 无法让路由文件等待所有 api 调用完成
- html - 弹性盒 css 标头