示例#1
0
        private static void ValueToJson(StringBuilder sb, DynValue value)
        {
            switch (value.Type)
            {
            case DataType.Boolean:
                sb.Append(value.Boolean ? "true" : "false");
                break;

            case DataType.Number:
                sb.Append(value.Number.ToString("r"));
                break;

            case DataType.String:
                sb.Append(EscapeString(value.String ?? ""));
                break;

            case DataType.Table:
                TableToJson(sb, value.Table);
                break;

            case DataType.UserData:
                sb.Append(JsonEmptyArray.IsJsonEmptyArray(value) ? "[]" : "null");
                break;

            case DataType.Nil:
            case DataType.Void:
            default:
                sb.Append("null");
                break;
            }
        }
示例#2
0
 private static bool IsValueJsonCompatible(DynValue value)
 {
     return(value.Type == DataType.Boolean || value.IsNil() ||
            value.Type == DataType.Number || value.Type == DataType.String ||
            value.Type == DataType.Table ||
            JsonNull.IsJsonNull(value) ||
            JsonEmptyArray.IsJsonEmptyArray(value));
 }