            pairs=json.loads(data['raw_json'],object_pairs_hook=lambda p:p);seen=defaultdict(list)
            for k,v in pairs:seen[k].append(v)
            conflict=[{'key':k,'values':v} for k,v in seen.items() if len(v)>1]
            def strict(p):
                keys=[k for k,v in p]
                if len(keys)!=len(set(keys)):raise ValueError('duplicate JSON key')
                return dict(p)
            rejected=False
            try:json.loads(data['raw_json'],object_pairs_hook=strict)
            except ValueError:rejected=True
            check('重复键在解析阶段被拒绝',rejected);check('两个原值均保留',seen['price']==output['price_values']==['19.90','29.90']);check('正常负对照通过',json.loads('{"price":"19.90"}',object_pairs_hook=strict)=={'price':'19.90'})
            cout('duplicate-key-conflicts.csv',conflict);result={'decision':'review','conflicts':conflict,'ordinary_parser_loss':json.loads(data['raw_json'])['price']}
