2个问题.
1)在Javascript中编写脚本时是否可以按原样使用LitJson库?这是一个关于能够在javascript源代码中使用c#source的一般问题.
2)我是c#dev的新手.我似乎无法让LitJson启动并运行.以下代码抛出此错误:An object reference is required to access non-static memberLitJson.JsonReader.Read()'`
using UnityEngine;
using System.Collections;
public class Loadr : MonoBehaviour {
string url= "http://developer.echonest.com/api/v4/artist/images?api_key=N6E4NIOVYMTHNDM8J&id=ARH6W4X1187B99274F&format=json&results=1&start=0&license=unknown";
void Start (){
WWW www = new WWW(url);
print(www.text);
Object a = LitJson.JsonReader.Read(www.text);
print(a.response.status);
}
}
Run Code Online (Sandbox Code Playgroud)
有什么想法吗?
我正在开发一个应用程序,其中我使用的数据来自服务器的json格式.但是,我能够解析普通的json数据,但无法用数组解析json数据,
json响应如下,
[{"id_user":"80","services":
[{"idservice":"3","title":"dni-e","message":"Texto para el dni-e"},
{"idservice":"4","title":"Tarjeta azul","message":"Texto para la tarjeta azul"}]
}]
Run Code Online (Sandbox Code Playgroud)
我该怎么读这个json数组?
注意:我使用Litjson进行解析.
由于JSON是一种可以写为字符串的格式,因此必须由库解释或有时由语言本身来解释。
在较旧的C#版本中,没有类似的东西。使用LitJSON库,我遇到以下问题,我有一个名为Vector3的类,其中包含3个浮点值(不是double)。
public class Vector3 {
public float x{get;set;}
public float y{get;set;}
public float z{get;set;}
}
Run Code Online (Sandbox Code Playgroud)
使用下面的LitJSON代码片段,它实际上应该用值填充Vector3的实例。
Vector3 test = JsonMapper.ToObject<Vector3>("{'x':1.0,'y':1.0,'z':1.0}");
Run Code Online (Sandbox Code Playgroud)
但是发生错误“无法为System.Single分配值(类型Single.Double)”
看来它只知道double但没有float:/
有什么解决办法吗?
我有一个 json 结构如下:
{
"result":
[
{"a":{"b":1,"c":2}},
{"a":{"b":1,"c":2}},
{"a":{"b":1,"c":2}},
{"a":[]}
]
}
Run Code Online (Sandbox Code Playgroud)
所以我创建了类结构来将其解析为 C# 对象:
public class JsonTest
{
public JsonTestResult[] result;
}
public class JsonTestResult
{
public JsonTestResultValue a;
}
public class JsonTestResultValue
{
public int b;
public int c;
}
Run Code Online (Sandbox Code Playgroud)
当尝试通过我解析这个时LitJson出现错误:
类型 JsonTestResultValue 不能充当数组
问题出在 json: 的这一部分{"a":[]},必须有{}而不是[],因为它实际上是一个对象,而不是数组。
现在我被困在这里,无法理解我必须为此 json 属性使用哪种类型 - 数组或任何对象类型都是不合适的。我现在想到的就是替换大括号(用 simple 的正则表达式String.Replace),但我确信,必须有更合适的方法来反序列化它。