private static string _GetGoDataTypeString(DataType dataType, JsonDetail JsonDetailType) { switch (dataType) { case DataType.Int: return("int32"); case DataType.Long: return("int64"); case DataType.Float: return("float32"); case DataType.Bool: return("bool"); case DataType.String: return("string"); case DataType.Json: { string tyStr = _getGoJsonTypeString(JsonDetailType); if (tyStr != null) { return(tyStr); } break; } default: break; } return("string"); }
/// <summary> /// 构造Json /// </summary> /// <returns></returns> private JsonDetail CreateStockinfo(DataTable dt) { JsonDetail JsInfo = new JsonDetail(); List <JsonDetailRows> body = new List <JsonDetailRows>(); for (int i = 0; i < dt.Rows.Count; i++) { JsonDetailRows StockBodyRow = new JsonDetailRows(); StockBodyRow.GOODSID = dt.Rows[i]["GOODSID"].ToString(); StockBodyRow.NAME = dt.Rows[i]["NAME"].ToString(); StockBodyRow.MODEL = dt.Rows[i]["MODEL"].ToString(); StockBodyRow.TRADEMARK = dt.Rows[i]["TRADEMARK"].ToString(); StockBodyRow.MID1 = dt.Rows[i]["MID1"].ToString(); StockBodyRow.Goodsbatch = dt.Rows[i]["Goodsbatch"].ToString(); StockBodyRow.QUALITYFLG = dt.Rows[i]["QUALITYFLG"].ToString(); StockBodyRow.SHIPPEDNUM = dt.Rows[i]["SHIPPEDNUM"].ToString(); StockBodyRow.ARRIVENUM = dt.Rows[i]["ARRIVENUM"].ToString(); StockBodyRow.BACKNUM = dt.Rows[i]["BACKNUM"].ToString(); StockBodyRow.BACKREASON = dt.Rows[i]["BACKREASON"].ToString(); StockBodyRow.LOADINGDOCID = dt.Rows[i]["LOADINGDOCID"].ToString(); StockBodyRow.LOADINGDOCDTID = dt.Rows[i]["LOADINGDOCDTID"].ToString(); StockBodyRow.INNERCODE1 = dt.Rows[i]["INNERCODE1"].ToString(); StockBodyRow.INNERCODE2 = dt.Rows[i]["INNERCODE2"].ToString(); StockBodyRow.SNAME = dt.Rows[i]["SNAME"].ToString(); body.Add(StockBodyRow); } JsInfo.body = body; return(JsInfo); }
public SaveB(string Par) { // 解析 JsonDetail tmp = JsonHelper.DeserializeJsonToObject <JsonDetail>(Par); SearchPar = tmp; LoadDTlist = ""; }
/// <summary> /// 构造Json /// </summary> /// <returns></returns> private JsonDetail CreateStockinfo(DataTable dt) { int Perpage; if (SearchPar.numPerPage == "") { Perpage = 5; } else { Perpage = int.Parse(SearchPar.numPerPage); } int pageno; if (SearchPar.pageNum == "") { pageno = 1; } else { pageno = int.Parse(SearchPar.pageNum) <= 0 ? 1 : int.Parse(SearchPar.pageNum); } JsonDetail JsInfo = new JsonDetail(); List <JsonDetailRows> body = new List <JsonDetailRows>(); int endno = pageno * Perpage < dt.Rows.Count?pageno * Perpage:dt.Rows.Count; for (int i = (pageno * Perpage - Perpage); i < endno; i++) { JsonDetailRows StockBodyRow = new JsonDetailRows(); StockBodyRow.GOODSID = dt.Rows[i]["GOODSID"].ToString(); StockBodyRow.NAME = dt.Rows[i]["NAME"].ToString(); StockBodyRow.MODEL = dt.Rows[i]["MODEL"].ToString(); StockBodyRow.TRADEMARK = dt.Rows[i]["TRADEMARK"].ToString(); StockBodyRow.MID1 = dt.Rows[i]["MID1"].ToString(); StockBodyRow.Goodsbatch = dt.Rows[i]["Goodsbatch"].ToString(); StockBodyRow.QUALITYFLG = dt.Rows[i]["QUALITYFLG"].ToString(); StockBodyRow.SHIPPEDNUM = dt.Rows[i]["SHIPPEDNUM"].ToString(); StockBodyRow.ARRIVENUM = dt.Rows[i]["ARRIVENUM"].ToString(); StockBodyRow.BACKNUM = dt.Rows[i]["BACKNUM"].ToString(); StockBodyRow.BACKREASON = dt.Rows[i]["BACKREASON"].ToString(); StockBodyRow.LOADINGDOCID = dt.Rows[i]["LOADINGDOCID"].ToString(); StockBodyRow.LOADINGDOCDTID = dt.Rows[i]["LOADINGDOCDTID"].ToString(); StockBodyRow.INNERCODE1 = dt.Rows[i]["INNERCODE1"].ToString(); StockBodyRow.INNERCODE2 = dt.Rows[i]["INNERCODE2"].ToString(); StockBodyRow.SNAME = dt.Rows[i]["SNAME"].ToString(); body.Add(StockBodyRow); } JsInfo.body = body; return(JsInfo); }
/// <summary> /// 查询头列表 /// </summary> /// <returns></returns> public string GetList() { try { //根据条件查询 DataTable dt = GetListD(); //构造返回的Json JsonDetail ResultJson = CreateStockinfo(dt); string strRet = JsonHelper.SerializeObject(ResultJson); return(strRet); } catch (Exception) { return("{\"Err\":\"查询失败\"}"); } }
private static bool _IsLocalCache(DataType dataType, JsonDetail JsonDetailType) { switch (dataType) { case DataType.Int: case DataType.Long: case DataType.Float: case DataType.Bool: case DataType.String: return(true); case DataType.Json: return(JsonDetailType != null); default: return(false); } }
private static string _getGoJsonTypeString(JsonDetail jsonDetail) { if (null == jsonDetail) { return(null); } switch (jsonDetail.ContentType) { case DataType.Array: return(string.Concat("[]", _GetGoDataTypeString(jsonDetail.ValueType, null))); case DataType.Dict: return(string.Concat("map[", _GetGoDataTypeString(jsonDetail.KeyType, null), "]", _GetGoDataTypeString(jsonDetail.ValueType, null))); default: break; } return(null); }
private static void _AnalyzeJsonData(StringBuilder content, JsonData jsonData, JsonDetail jsonDetail, int level) { if (jsonData == null) { // 处理键值对中的值为null的情况 content.Append("nil"); } else if (jsonData.IsObject == true) { content.AppendLine("{"); ++level; List <string> childKeyNames = new List <string>(jsonData.Keys); int childCount = jsonData.Count; for (int i = 0; i < childCount; ++i) { content.Append(_GetLuaTableIndentation(level)); // 如果键名为数字,需要加方括号和引号 string keyName = childKeyNames[i]; double temp; if (double.TryParse(keyName, out temp) == true) { if (jsonDetail != null && jsonDetail.KeyType == DataType.Int) { content.AppendFormat("[{0}]", keyName); } else { content.AppendFormat("[\"{0}\"]", keyName); } } else { content.Append(childKeyNames[i]); } content.Append(" = "); _AnalyzeJsonData(content, jsonData[i], jsonDetail, level); content.AppendLine(","); } --level; content.Append(_GetLuaTableIndentation(level)); content.Append("}"); } else if (jsonData.IsArray == true) { content.AppendLine("{"); ++level; int childCount = jsonData.Count; for (int i = 0; i < childCount; ++i) { content.Append(_GetLuaTableIndentation(level)); content.AppendFormat("[{0}] = ", i + 1); _AnalyzeJsonData(content, jsonData[i], jsonDetail, level); content.AppendLine(","); } --level; content.Append(_GetLuaTableIndentation(level)); content.Append("}"); } else if (jsonData.IsString == true) { // 将单元格中填写的英文引号进行转义,使得单元格中填写123"456时,最终生成的lua文件中为xx = "123\"456" // 将单元格中手工按下的回车变成"\n"输出到lua文件中,单元格中输入的"\n"等原样导出到lua文件中使其能被lua转义处理 content.AppendFormat("\"{0}\"", jsonData.ToString().Replace("\n", "\\n").Replace("\"", "\\\"")); } else if (jsonData.IsBoolean == true) { content.AppendFormat(jsonData.ToString().ToLower()); } else if (jsonData.IsInt == true || jsonData.IsLong == true || jsonData.IsDouble == true) { content.AppendFormat(jsonData.ToString()); } else { Utils.LogErrorAndExit("用_AnalyzeJsonData解析了未知的JsonData类型"); } }