C# 如何将自定义字符串数据转换为json并逐个获取数据
这是我的字符串数据:C# 如何将自定义字符串数据转换为json并逐个获取数据,c#,arrays,json,string,unity3d,C#,Arrays,Json,String,Unity3d,这是我的字符串数据: [1,1,1,2,1,1,1,1,2,1,3,1,1,1,1,2,1,3] 我将字符串数据转换成json,我这样做 string jsonString = "[1, 1, 1, 2, 1, 1, 1, 2, 1, 2, 1, 1, 1, 2, 1, 1]"; private void Start() { ExampleClass dataParser = new ExampleClass(); dataParser.dataToParse = jsonStr
[1,1,1,2,1,1,1,1,2,1,3,1,1,1,1,2,1,3]
我将字符串数据转换成json,我这样做
string jsonString = "[1, 1, 1, 2, 1, 1, 1, 2, 1, 2, 1, 1, 1, 2, 1, 1]";
private void Start()
{
ExampleClass dataParser = new ExampleClass();
dataParser.dataToParse = jsonString;
//Convert to Json
string exampleClassToJson = JsonUtility.ToJson(dataParser);
Debug.Log(exampleClassToJson);
}
}
[Serializable]
public class ExampleClass
{
public string dataToParse;
}
它被成功地转换了,这是它的输出:
{“dataToParse”:“[1,1,1,2,1,1,1,1,1,2,1,1,1,2,1,1]”
现在我的问题是如何一个接一个地获取这些数据我能做到吗?谁能帮帮我吗
我想在这里实现的是制作一个类似这样的记分板
在我的字符串数据中,红色圆圈是我的“2”
,蓝色圆圈是我的“1”
。将json更改为:
{"dataToParse":"[1, 1, 1, 2, 1, 1, 1, 2, 1, 2, 1, 1, 1, 2, 1, 1]"}
到
然后将类更改为:
[Serializable]
public class ExampleClass
{
public List<int>dataToParse;
}
编辑:
根据您上次关于如何转换json字符串的评论,我将让系统处理它并保持简单
创建ExampleClass的实例并填充值。然后让JsonUtility完成剩下的工作
void Start()
{
ExampleClass ec = new ExampleClass();
ec.dataToParse = new List<int>(){1, 1, 1, 2, 1, 1, 1, 2, 1, 2, 1, 1, 1, 2, 1, 1};
string json = JsonUtility.ToJson(ec);
}
void Start()
{
ExampleClass=新ExampleClass();
ec.dataToParse=new List(){1,1,1,2,1,1,1,1,2,1,1,1,1,2,1,1,1};
字符串json=JsonUtility.ToJson(ec);
}
将json更改为:
{"dataToParse":"[1, 1, 1, 2, 1, 1, 1, 2, 1, 2, 1, 1, 1, 2, 1, 1]"}
到
然后将类更改为:
[Serializable]
public class ExampleClass
{
public List<int>dataToParse;
}
编辑:
根据您上次关于如何转换json字符串的评论,我将让系统处理它并保持简单
创建ExampleClass的实例并填充值。然后让JsonUtility完成剩下的工作
void Start()
{
ExampleClass ec = new ExampleClass();
ec.dataToParse = new List<int>(){1, 1, 1, 2, 1, 1, 1, 2, 1, 2, 1, 1, 1, 2, 1, 1};
string json = JsonUtility.ToJson(ec);
}
void Start()
{
ExampleClass=新ExampleClass();
ec.dataToParse=new List(){1,1,1,2,1,1,1,1,2,1,1,1,1,2,1,1,1};
字符串json=JsonUtility.ToJson(ec);
}
这确实是可能的。循环遍历dataToParse
变量。确保循环从1
开始,而不是从0
开始。还要确保循环以dataToParse.Length-1而不是dataToParse.Length结束代码>。这将删除[
和]
在循环中,计数器的增量为3
,而不是通常的1
。通过这样做,它还将删除json中每个值后面的“,”和“”。您可以在循环中以char
的形式获取每个值,该值可以转换为您想要的任何值类型
ExampleClass obj = JsonUtility.FromJson<ExampleClass>(exampleClassToJson);
//Loop over it
for (int i = 1; i < obj.dataToParse.Length - 1; i += 3)
{
char indivisualChar = obj.dataToParse[i];
Debug.Log(indivisualChar);
}
ExampleClass obj=JsonUtility.FromJson(exampleClassToJson);
//绕过去
对于(int i=1;i
虽然这应该可以解决您问题中的问题,但我建议您使用数组或列表来表示此数据,除非您有充分的理由这样做,然后再去做。这确实是可能的。循环遍历dataToParse
变量。确保循环从1
开始,而不是从0
开始。还要确保循环以dataToParse.Length-1而不是dataToParse.Length结束代码>。这将删除[
和]
在循环中,计数器的增量为3
,而不是通常的1
。通过这样做,它还将删除json中每个值后面的“,”和“”。您可以在循环中以char
的形式获取每个值,该值可以转换为您想要的任何值类型
ExampleClass obj = JsonUtility.FromJson<ExampleClass>(exampleClassToJson);
//Loop over it
for (int i = 1; i < obj.dataToParse.Length - 1; i += 3)
{
char indivisualChar = obj.dataToParse[i];
Debug.Log(indivisualChar);
}
ExampleClass obj=JsonUtility.FromJson(exampleClassToJson);
//绕过去
对于(int i=1;i
虽然这可以解决您问题中的问题,但我建议您使用数组或列表来表示此数据,除非您有充分的理由这样做,然后再使用它。如何将我的this{“dataToParse”:“[1,1,1,2,1,1,1,2,1,1,2,2,1,1,1,1,2,1,1]}
更改为此{“dataToParse”:[1,1,1,2,1,1,2,1,2,1,1,1,2,1,1]}
-我是从最高的长官那里宣布的..我如何才能把我的这个{“dataToParse”:“[1,1,1,1,2,2,1,1,1,1,1,2,1,2,2,1,1]”
改成这个{“dataToParse:[1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1]
?我是从上面声明的,先生..如果您只需将它复制并粘贴到启动
功能的末尾,它应该可以立即运行。您问题中的那个…哇。谢谢:)(y)如果您只需将其复制并粘贴到开始
函数的末尾,它应该可以立即运行。您问题中的那个……哇,谢谢:)(y)