本文整理汇总了C#中SimpleJSON.JSONArray类的典型用法代码示例。如果您正苦于以下问题:C# JSONArray类的具体用法?C# JSONArray怎么用?C# JSONArray使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
JSONArray类属于SimpleJSON命名空间,在下文中一共展示了JSONArray类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: AsStringArray
public static string[] AsStringArray(JSONArray arrayJson)
{
string[] array = new string[arrayJson.Count];
int index = 0;
foreach(JSONNode node in arrayJson){
array[index] = (string)node.ToString();
index+=1;
}
return array;
}
示例2: convertPersistentListToJSONArray
public static JSONArray convertPersistentListToJSONArray (List<JSONPersistent> list)
{
JSONArray jArray = new JSONArray ();
foreach (JSONPersistent persist in list) {
jArray.Add (persist.getDataClass ());
}
return jArray;
}
示例3: convertJSONArrayToPersistentList
public static List<JSONPersistent> convertJSONArrayToPersistentList (JSONArray jArray, Type persistentType)
{
List<JSONPersistent> list = new List<JSONPersistent> ();
for (int i = 0; i < jArray.Count; i++) {
JSONPersistent persist = Activator.CreateInstance (persistentType) as JSONPersistent;
persist.setClassData (jArray [i].AsObject);
list.Add (persist);
}
return list;
}
示例4: JSONLazyCreator
public override JSONNode this [int aIndex]
{
get {
return new JSONLazyCreator (this);
}
set {
var tmp = new JSONArray ();
tmp.Add (value);
Set (tmp);
}
}
示例5: getKeyMapStringArraysFromKeyMapJSON
//Helper function that gets a keymap from a JSON array (assumed to be 2D array of strings)
public static List<string[]> getKeyMapStringArraysFromKeyMapJSON(JSONArray keyMap)
{
JSONArray keysJSON = keyMap[0].AsArray;
JSONArray commandsJSON = keyMap[1].AsArray;
string[] keys = new string[keysJSON.Count];
for (int i = 0; i < keysJSON.Count; i++)
keys[i] = keysJSON[i];
string[] commands = new string[commandsJSON.Count];
for (int i = 0; i < commandsJSON.Count; i++)
commands[i] = commandsJSON[i];
List<string[]> output = new List<string[]>();
output.Add(keys);
output.Add(commands);
return output;
}
示例6: GetExtJson
/*
* {
"type": "group_info", //标记
"group": //group 信息
{
"member":
[//成员
{
"uid": ""//用户id
},
...
],
"vid": "", //场馆id
"name": "",//..名字
"address": "",//..地址
"time": "",//..时间
"latitude": "",//..经度
"longtitude": "",//..纬度
"state": "",//..状态 3种状态 0 是未预订 2是预订 1是投票状态
"max": ""//..最大成员数 默认10
}
}
*/
public string GetExtJson(string groupID)
{
Monitor.Enter(userGroupDict);
try
{
SportMatchGroup group = groupList.Find(a => { return a.groupID == groupID; });
Venue venue = group.venue;
JSONClass jc = new JSONClass();
jc.Add("type", new JSONData("group_info"));
JSONClass jc_1 = new JSONClass();
JSONArray ja_1_1 = new JSONArray();
var itr = userGroupDict.GetEnumerator();
while (itr.MoveNext())
{
string groupid = itr.Current.Value;
if (groupid != groupID)
continue;
string uuid = itr.Current.Key;
JSONClass jc_1_1_i = new JSONClass();
jc_1_1_i.Add("uid", new JSONData(uuid));
ja_1_1.Add(jc_1_1_i);
}
jc_1.Add("member", ja_1_1);
if (venue == null)
{
jc_1.Add("vid", new JSONData(""));
jc_1.Add("name", new JSONData(""));
jc_1.Add("address", new JSONData(""));
jc_1.Add("time", new JSONData(""));
jc_1.Add("latitude", new JSONData(""));
jc_1.Add("longtitude", new JSONData(""));
jc_1.Add("state", new JSONData(0));
}
else
{
jc_1.Add("vid", new JSONData(venue.id));
jc_1.Add("name", new JSONData(venue.name));
jc_1.Add("address", new JSONData(venue.address));
jc_1.Add("time", new JSONData(venue.time));
jc_1.Add("latitude", new JSONData(venue.latitude));
jc_1.Add("longtitude", new JSONData(venue.longitude));
jc_1.Add("state", new JSONData(2));
}
jc_1.Add("max", new JSONData(10));
jc.Add("group", jc_1);
return jc.ToJSON(0);
}
finally
{
Monitor.Exit(userGroupDict);
}
}
示例7: SendMessage
/*
*{
"target_type":"users", // users 给用户发消息。chatgroups 给群发消息,chatrooms 给聊天室发消息
"target":["testb","testc"], // 注意这里需要用数组,数组长度建议不大于20,即使只有
// 一个用户u1或者群组,也要用数组形式 ['u1'],给用户发
// 送时数组元素是用户名,给群组发送时数组元素是groupid
"msg":{ //消息内容
"type":"txt", // 消息类型,不局限与文本消息。任何消息类型都可以加扩展消息
"msg":"消息" // 随意传入都可以
},
"from":"testa", //表示消息发送者。无此字段Server会默认设置为"from":"admin",有from字段但值为空串("")时请求失败
"ext":{ //扩展属性,由APP自己定义。可以没有这个字段,但是如果有,值不能是"ext:null"这种形式,否则出错
"attr1":"v1" // 消息的扩展内容,可以增加字段,扩展消息主要解析不分。
}
}
*/
public string SendMessage(string targetType, string[] targetID, string msgType, string msgText, string fromUUID, string extJson = null)
{
JSONClass jc = new JSONClass();
jc.Add("target_type", JD(targetType));
JSONArray ja = new JSONArray();
foreach (string tID in targetID)
{
ja.Add(JD(tID));
}
jc.Add("target", ja);
JSONClass jmsg = new JSONClass();
jmsg.Add("type", JD(msgType));
jmsg.Add("msg", JD(msgText));
jc.Add("msg", jmsg);
if (fromUUID != null)
jc.Add("from", fromUUID);
if (extJson != null)
jc.Add("ext", JSON.Parse(extJson));
string postData = jc.ToJSON(0);
string result = ReqUrl(easeMobUrl + "messages", "POST", postData, token);
return result;
}
示例8: Serialize
public static void Serialize(JSONClass jc, object obj, bool serializeStatic = false)
{
foreach (FieldInfo mi in obj.GetType().GetFields())
{
if (mi.GetCustomAttributes(typeof(NonSerializedAttribute), true).Length > 0)
continue;
if (!serializeStatic && mi.IsStatic)
continue;
if (mi.FieldType.IsArray)
{
IEnumerable arrobjs = (IEnumerable)mi.GetValue(obj);
JSONArray arr = new JSONArray();
if (typeof(IJSONSerializable).IsAssignableFrom(mi.FieldType.GetElementType()))
{
foreach (object aobj in arrobjs)
{
JSONClass cls = new JSONClass();
((IJSONSerializable)aobj).OnSerialize(cls);
arr.Add(cls);
}
}
else
{
if (mi.FieldType.GetElementType() == typeof(GameObject))
{
foreach (object aobj in arrobjs)
{
arr.Add(AssetUtility.GetAssetPath((GameObject)aobj));
}
}
else
{
foreach (object aobj in arrobjs)
{
arr.Add(aobj.ToString());
}
}
}
jc[mi.Name] = arr;
}
else
{
if (typeof(IJSONSerializable).IsAssignableFrom(mi.FieldType))
{
JSONClass cls = new JSONClass();
(mi.GetValue(obj) as IJSONSerializable).OnSerialize(cls);
jc[mi.Name] = cls;
}
else
{
if (mi.FieldType == typeof(GameObject))
{
jc[mi.Name] = AssetUtility.GetAssetPath((GameObject)mi.GetValue(obj));
}
else if (mi.FieldType == typeof(Color))
{
Color c = (Color)mi.GetValue(obj);
jc[mi.Name] = SerializeColor(c);
}
else if (mi.FieldType == typeof(Vector4))
{
Vector4 c = (Vector4)mi.GetValue(obj);
jc[mi.Name] = SerializeVector4(c);
}
else if (mi.FieldType == typeof(Vector3))
{
Vector3 c = (Vector3)mi.GetValue(obj);
jc[mi.Name] = SerializeVector3(c);
}
else if (mi.FieldType == typeof(Vector2))
{
Vector2 c = (Vector2)mi.GetValue(obj);
jc[mi.Name] = SerializeVector2(c);
}
else if (mi.FieldType == typeof(TimeSpan))
{
jc[mi.Name] = ((TimeSpan)mi.GetValue(obj)).ToString();
}
else if(mi.FieldType.IsEnum)
{
Enum v = (Enum)mi.GetValue(obj);
jc[mi.Name] = string.Format("{0} {1}", v.GetType().Name, v.ToString());
}
else
{
object v = mi.GetValue(obj);
if (mi.FieldType == typeof(string))
v = "";
if (v != null)
jc[mi.Name] = mi.GetValue(obj).ToString();
else
Debug.LogError("[JSONSerialization] Cannot save field: " + mi.Name + " due to its (null)");
}
}
//.........这里部分代码省略.........
示例9: setJSONArray
/// <summary>
/// replaces the existing JSONArray
/// </summary>
/// <param name="newArray">New array.</param>
public void setJSONArray (JSONArray newArray)
{
persistentArray = newArray;
}
示例10: Save
private static void Save(Assembly asm)
{
var mod = GetModFromAssembly(asm);
if (mod == null)
{
throw new InvalidOperationException("Cannot save configuration: "
+ "Failed to determine mod");
}
var modName = mod.Mod.Name;
if (!configs.ContainsKey(modName))
{
configs.Add(modName, new Dictionary<string, Value>());
}
var config = configs[modName];
var keys = config.Keys.ToArray();
var root = new JSONArray();
for (int i = 0; i < keys.Length; i++)
{
var obj = new JSONClass();
obj["key"] = keys[i];
obj["value"]["type"] = config[keys[i]].type;
obj["value"]["value"] = config[keys[i]].value.ToString();
root[i] = obj;
}
var json = root.ToJSON(0);
var path = Application.dataPath + "/Mods/Config/" + modName + ".json";
Directory.CreateDirectory(Application.dataPath + "/Mods/Config/");
using (var writer = new StreamWriter(File.Open(path, FileMode.Create)))
{
writer.Write(json);
}
}
示例11: ConvertListToJson
private string ConvertListToJson(List<String> list)
{
if (list == null) {
return null;
}
var jsonArray = new JSONArray ();
foreach (var listItem in list) {
jsonArray.Add (new JSONData (listItem));
}
return jsonArray.ToString ();
}
示例12: DeserializeComponents
public static void DeserializeComponents(JSONArray components, GameObject obj)
{
foreach (JSONNode node in components.Childs)
{
string clsName = node["_meta_cls"];
Type t = Type.GetType("AU." + clsName);
IJSONSerializable s = obj.AddComponent(t) as IJSONSerializable;
s.OnDeserialize(node);
}
}
示例13: SerializeComponents
public static JSONArray SerializeComponents(GameObject obj)
{
JSONArray a = new JSONArray();
IJSONSerializable[] serializables = obj.GetInterfaces<IJSONSerializable>().ToArray();
foreach (IJSONSerializable hs in serializables)
{
JSONClass hsNode = new JSONClass();
hs.OnSerialize(hsNode);
hsNode["_meta_cls"] = hs.GetType().Name;
a.Add(hsNode);
}
return a;
}
示例14: Add
public override void Add (JSONNode aItem)
{
var tmp = new JSONArray ();
tmp.Add (aItem);
Set (tmp);
}
示例15: Deserialize
public static JSONNode Deserialize (System.IO.BinaryReader aReader)
{
JSONBinaryTag type = (JSONBinaryTag)aReader.ReadByte ();
switch (type) {
case JSONBinaryTag.Array:
{
int count = aReader.ReadInt32 ();
JSONArray tmp = new JSONArray ();
for (int i = 0; i < count; i++)
tmp.Add (Deserialize (aReader));
return tmp;
}
case JSONBinaryTag.Class:
{
int count = aReader.ReadInt32 ();
JSONClass tmp = new JSONClass ();
for (int i = 0; i < count; i++) {
string key = aReader.ReadString ();
var val = Deserialize (aReader);
tmp.Add (key, val);
}
return tmp;
}
case JSONBinaryTag.Value:
{
return new JSONData (aReader.ReadString ());
}
case JSONBinaryTag.IntValue:
{
return new JSONData (aReader.ReadInt32 ());
}
case JSONBinaryTag.DoubleValue:
{
return new JSONData (aReader.ReadDouble ());
}
case JSONBinaryTag.BoolValue:
{
return new JSONData (aReader.ReadBoolean ());
}
case JSONBinaryTag.FloatValue:
{
return new JSONData (aReader.ReadSingle ());
}
default:
{
throw new Exception ("Error deserializing JSON. Unknown tag: " + type);
}
}
}