为谁炼金数据合并

2018-01-19  本文已影响0人  Lohengriny

弄了个 Mathematica 脚本方便将自己的本体数据写入原本的 masterParam, 本地数据按照 masterParam 的格式写即可。

masterParam=ImportString[FromCharacterCode@ToCharacterCode[Import["path\\49744fd6.txt"],"UTF-8"],"RawJSON"];
customParam=ImportString[FromCharacterCode@ToCharacterCode[Import["path\\customParam.txt"],"UTF-8"],"RawJSON"];
mergeParam[type_String]:=Block[
{list},
list=masterParam[[Key[type]]];
list=Join[list,customParam[[Key[type]]]];
list=Reverse[list];
list=DeleteDuplicatesBy[list,#iname&];
list=Reverse[list];
masterParam[[Key[type]]]=list;
]
mergeParam["Skill"];mergeParam["Buff"];mergeParam["Ability"];
Button["Export Master Param",
Export["path\\49744fd6.txt",masterParam,"RawJSON"];Print["OK!"]]

修改版

jsonOverwrite[json_, object_] := Module[
  {pos, iname = object["iname"]},
  pos = FirstPosition[json, _Association?(#["iname"] == iname &), 
    Null];
  If[ListQ[pos], Part[json, (Sequence @@ pos)] = object,
   Switch[StringSplit[iname, "_"][[1]],
    "SK", AppendTo[json["Skill"], object],
    "BUFF", AppendTo[json["Buff"], object],
    "AB", AppendTo[json["Ability"], object]
    ]
   ]
  ]
SetAttributes[jsonOverwrite, HoldFirst]
上一篇下一篇

猜你喜欢

热点阅读