Tox*_*DOS 0 c# json unity-game-engine deserialization
使用看起来像这样的JSON文件,
{
"dict": {"key": "value"}
}
Run Code Online (Sandbox Code Playgroud)
我怎么能在Unity中制作一个名为"dict"的字典,看起来像这个{"key":"value"}?
这是我的课.
[Serializable]
public class MyJson
{
public Dictionary<string,string> dict;
}
Run Code Online (Sandbox Code Playgroud)
我不知道为什么,但是当我尝试使用这个类和JsonUnility.FromJson()方法时,它似乎没有将dict更改为我期望的字典.相反,它只是空.
编辑:我已经看到在Unity文档中它说"字典不受支持"所以是否有一些方便的方法来轻松创建字典或者我是否必须将自己与数据拼凑在一起?
这是一个潜在的JSON.这种问题进入我遇到的另一个问题,虽然我用python创建了JSON,这意味着我可以在我的字典中使用不同的值类型,但这对C#不起作用所以现在它只是字符串而且我会稍后想出一些东西.(可能通过将其全部列出,那么只有字符串的那些只有1个元素)
{
"pages": [
{
"files": "[null, null, null, null]",
"imagepath": "C:/Users/Jeff/Pictures/location_sharing.png",
"pageNum": "0",
"polygons": "[[[122, 184], [178, 180], [174, 159], [126, 158]], [[191, 157], [194, 185], [241, 183], [246, 154]], [[334, 219], [323, 236], [323, 247], [338, 259], [358, 259], [364, 236], [356, 221], [344, 215]], [[512, 221], [503, 235], [508, 256], [518, 267], [538, 260], [548, 250], [541, 228], [529, 218]]]"
},
{
"files": "[null, null, null]",
"imagepath": "C:/Users/Jeff/Pictures/node.png",
"pageNum": "1",
"polygons": "[[[189, 149], [181, 152], [188, 170], [197, 182], [196, 173], [192, 153]], [[233, 176], [258, 171], [244, 144]], [[116, 260], [143, 227], [181, 210], [225, 202], [276, 199], [305, 210], [353, 222], [360, 252], [361, 266]]]"
}]}
Run Code Online (Sandbox Code Playgroud)
您更新的示例架构看起来根本不是字典.因为每个元素pages
都不是实际的嵌套json,而是一个看起来像它可以作为嵌套json插入的字符串所有你需要做的就是
[Serializable]
public class PageContainer
{
Page[] pages;
}
[Serializable]
public class Page
{
public string files;
public string imagepath;
public string pagenum;
public string polygons;
}
Run Code Online (Sandbox Code Playgroud)
然后做一个
PageContainer pageContainer = JsonUtility.FromJson<PageContainer>(yourString);
Run Code Online (Sandbox Code Playgroud)
那么您可能需要做进一步的工作
FileContainer fileContainer = JsonUtility.FromJson<FileContainer>(pageContainer.files);
PolygonContainer polygonContainer = JsonUtility.FromJson<PolygonContainer>(pageContainer.polygons);
Run Code Online (Sandbox Code Playgroud)
并根据需要进行必要的课程.
归档时间: |
|
查看次数: |
3189 次 |
最近记录: |