public static void InitGoodInfo(string goodInfoList) { m_dicGoodInfos.Clear(); #if !UNITY_EDITOR && UNITY_ANDROID JsonData data = JsonMapper.ToObject(goodInfoList); for (int i = 0; i < data.Count; i++) { GoodInfo newGood = GoodInfo.ValueOf(data[i]); if (!m_dicGoodInfos.ContainsKey(newGood.goods_register_id)) { m_dicGoodInfos.Add(newGood.goods_register_id, newGood); } else { LogModule.ErrorLog("key exist" + newGood.goods_register_id); break; } } #else int curPos = goodInfoList.IndexOf("{") + 1; while (curPos > 0 && curPos < goodInfoList.Length) { int endPos = goodInfoList.IndexOf("}", curPos); LogModule.DebugLog(" endPos" + endPos); if (endPos < 0 && endPos <= curPos) { LogModule.ErrorLog(" parse good info list fail"); break; } GoodInfo newGood = new GoodInfo(goodInfoList.Substring(curPos, endPos - curPos)); LogModule.DebugLog("add goodInfo" + newGood.goods_register_id); if (!m_dicGoodInfos.ContainsKey(newGood.goods_register_id)) { m_dicGoodInfos.Add(newGood.goods_register_id, newGood); } else { LogModule.ErrorLog("key exist" + newGood.goods_register_id); break; } curPos = goodInfoList.IndexOf("{", endPos) + 1; } #endif foreach (KeyValuePair <string, GoodInfo> curPair in m_dicGoodInfos) { curPair.Value.WriteString(); } }